一. 实验要求
1. 基于服务器的客户端相互直接通信,具体要求包括:
2. Server支持多客户访问;
3. C与S之间使用TCP连接;
4. C与C之间直接通信(不是通过S传递)。
5. C与C之间直接通信既可以使用TCP,也可以使用UDP。
6. 可以使用Socket,也可以使用TcpClient/UdpClient等;
二. 设计思路
1.采用TCP通信方式,将客户端与服务器端连接;
2.每当一个连接,向所有客户端发送新的登录用户名,同时将所有客户端的IP和端口号连接;
3.在用户列表里选择用户名字,记录选择的客户端,同时记录他的IP和端口号,进行绑定,点击发送信息,向其发送信息。
核心代码:
客户端连接服务器:
try
{
client = new TcpClient("127.0.0.1", 51888);
AddTalkMessage("连接成功");
}
catch
{
AddTalkMessage("连接失败");
button1.Enabled = true;
return;
}
NetworkStream networkStream =client.GetStream();
br = new BinaryReader(networkStream);
bw = new BinaryWriter(networkStream);
Thread threadRecive = new Thread(