
用C#写的一个简单的Socket 在.net中的应用程序:实现效果如上:客户端发送一条消息,服务器端回应一条消息。这样更能随时知道消息发送出去是否被接收到.
实现的方法主要是用的.net同步Socket ,和线程技术。
服务器:
1) 定义一个Socket 用于监听:
private Socket Listener;
Listener =new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint BindIp = new IPEndPoint(IPAddress.Parse(IP), int.Parse(txtPort.Text));
Listener.Bind(BindIp);
Listener.Listen(100);

btnListen.Text = "Listening
";
staticTool.Text = "正在监听
";
IsListen = true;
2) 启动一个线程用于接受客户端Socket的连接
Thread acceptThread = new Thread(new ThreadStart(AcceptWorkThread));
acceptThread.Start();

private void AcceptWorkThread()
}
3 ) 在上面一段代码中,是将于客户端连接的Socket保存下来,并将这个Socket当作参数开启另外一个线程,在另外一个线程中,接受客户端socket发来的数据和向客户端发送数据已响应客户端发送的数据已被接收。
private void ReceiveWorkThread(object obj)
}
4) 将接收到的数据显示出来,利用了委托定义了一个事件,因为在别的线程中是无法调用界面控件的。

private void ReceiveData(object sender,EventArgs e )
}
到此服务器端的代码已完成。
再来实现客户端,客户端要实现的主要有:
1)建立Socket,连接到服务端,创建线程接受数据,向发送数据。
Socket ClientSocket=null ;
ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
ClientSocket.Connect(IPAddress.Parse(txtIP.Text), int.Parse(txtPort .Text ));

new Thread(new ParameterizedThreadStart(ReceiveThread)).Start ();

private void ReceiveThread(object obj)

private void btnSend_Click(object sender, EventArgs e)
}
完整代码下载
相关文章: