我有一個關於異步socket編程下面的代碼:C#指定客戶端端口
public void ServerBeginAceept(ushort ServerPort)
{
try
{
ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, ServerPort);
ServerSocket.Bind(ipEndPoint);
ServerSocket.Listen(MAX_CONNECTIONS);
IAsyncResult result = ServerSocket.BeginAccept(new AsyncCallback(ServerEndAccept), ServerSocket);
}
}
public void ServerEndAccept(IAsyncResult iar)
{
try
{
ServerSocket = (Socket)iar.AsyncState;
CommSocket = ServerSocket.EndAccept(iar);
}
}
public void ClientBeginConnect(string ServerIP, ushort ServerPort)
{
try
{
CommSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(ServerIP), ServerPort);
IAsyncResult result = CommSocket.BeginConnect(ipEndPoint, new AsyncCallback(ClientEndConnect), CommSocket);
}
}
public void ClientEndConnect(IAsyncResult iar)
{
try
{
CommSocket = (Socket)iar.AsyncState;
CommSocket.EndConnect(iar);
OnNetworkEvents eventArgs = new OnNetworkEvents(true, "Connected: " + CommSocket.RemoteEndPoint.ToString(), string.Empty);
OnUpdateNetworkStatusMessage(this, eventArgs);
}
}
那麼有沒有錯代碼(我已經簡化它,它在這裏呈現爲我的工作證明它不尋找作業的幫助!)
我的問題是:我如何從指定的客戶端端口與服務器通信?這裏的代碼是所有基於服務器的端口,並且這很有效。但是我想實現與客戶端的特定端口進行通信的代碼,而不僅僅是服務器隨機生成的代碼。
謝謝你的時間。
我不知道插座/端口功能的方式。這一直是良好的教育。感謝您的輸入。 – iTEgg 2010-01-12 18:23:24