private void Accept(IAsyncResult iar) //参数为异步操作的状态
{
try
{
Socket socket = (Socket)iar.AsyncState;
Socket NewSocket = socket.EndAccept(iar); //异步接受传入的连接尝试,并创建新的 Socket 来处理远程主机通信
strRemoteIPEndPoint = NewSocket.RemoteEndPoint.ToString();
listSocketsConnected.Add(NewSocket);
this.Invoke(AddNewMessage, new object[] { DateTime.Now.ToString(), "连接" + strRemoteIPEndPoint });
//this.Invoke(AddNewMessage, new object[] { DateTime.Now.ToString(), "连接" + NewSocket.RemoteEndPoint.ToString() });
//lstbxMessage.Items.Add("连接"+NewSocket.RemoteEndPoint.ToString() + " " + DateTime.Now.ToString());
socket.BeginAccept(new AsyncCallback(Accept), socket);
//开始从连接的 Socket 中异步接收数据1024个字节到RevData
NewSocket.BeginReceive(RevData, 0, 1024, SocketFlags.None, new AsyncCallback(Receive), NewSocket);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
7 个解决方案
#1
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4NExtZHBaZz09.jpg?w=700&webp=1)
#2
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4eU5TNW5hV1k9.jpg?w=700&webp=1)
这说几天几夜也说不完。
#3
去下个开源的 QQ聊天 源代码来分析下 不就结了。
#4
仿QQ聊天工具 不是QQ聊天 补充下。
#5
服务器转发
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4eExtZHBaZz09.jpg?w=700&webp=1)
#6
A连接到服务器,连接成功后,同样开始等待接收数据,同步异步随你。
A端:socket.connect(...);
if(socket.connected)
{
socket.accept(...);
}
具体可以看msdn自己学习。
A端:socket.connect(...);
if(socket.connected)
{
socket.accept(...);
}
具体可以看msdn自己学习。
#7
应该把消息存到服务器的数据库中,A从数据库取就好了。
#1
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4NExtZHBaZz09.jpg?w=700&webp=1)
#2
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4eU5TNW5hV1k9.jpg?w=700&webp=1)
这说几天几夜也说不完。
#3
去下个开源的 QQ聊天 源代码来分析下 不就结了。
#4
仿QQ聊天工具 不是QQ聊天 补充下。
#5
服务器转发
![C#网络编程,A客户端如何获取B客户端发送到服务器的信息 C#网络编程,A客户端如何获取B客户端发送到服务器的信息](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0hNNkx5OW1iM0oxYlM1amMyUnVMbTVsZEM5UWIybHVkRVp2Y25WdEwzVnBMM05qY21sd2RITXZZM05rYmk5UWJIVm5hVzR2TURBekwyMXZibXRsZVM4eExtZHBaZz09.jpg?w=700&webp=1)
#6
A连接到服务器,连接成功后,同样开始等待接收数据,同步异步随你。
A端:socket.connect(...);
if(socket.connected)
{
socket.accept(...);
}
具体可以看msdn自己学习。
A端:socket.connect(...);
if(socket.connected)
{
socket.accept(...);
}
具体可以看msdn自己学习。
#7
应该把消息存到服务器的数据库中,A从数据库取就好了。