一. 实验要求
1)设计程序,分别构建通信的两端:服务器端和客户端应用程序,套接字类型为面向连接的Socket,自己构建双方的应答模式,实现双方的数据的发送和接收(S发给C,C发给S)。
2)服务端程序能响应单个或任意多个客户端连接请求;服务端能向单个客户发送消息,支持群发消息给所有客户端;
3)通信的双方具备异常响应功能,包括对方异常退出的处理。如果客户端退出,服务器有响应;反之亦然。
二. 设计思路
1. 用两个项目分别创建服务器端和客户端
2. 在服务器端用socket通信,在服务器端绑定IP地址和端口号,对客户端进行监听
3. 设置一个线程来启动Socket,当点击Connect按钮,进行客户端连接,一旦连接,对客户端发送“Hello”
4. 用Socket的Send和Receive方法来实现客户端和服务器端口的通信
核心代码:
服务器端监听:
public void Listen()
{
setPort = int.Parse("6156");
newsocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
localEP = new IPEndPoint(IPAddress.Any,setPort);
try
{
newsocket.Bind(localEP);
newsocket.Listen(10);
m_Listening = true;
newsocket.BeginAccept(new AsyncCallback(OnConnectRequest), newsocket);
}
catch(Exceptione)
{
showClient