我正在为C#中的在线游戏编写一个简单的代理(更多的数据包记录器)。 基本的登录过程如下:
客户端 - >服务器:登录数据包 - 我的代理接收数据包,显示它并将其发送到服务器。
服务器 - >客户端:已连接!数据包 - 我的代理再次接收数据包,它也会再次显示它,但在尝试将其发送到客户端时,它说:
“由于套接字未连接而且(使用sendto调用在数据报套接字上发送时)未提供发送或接收数据的请求,因此未提供地址。”
答案 0 :(得分:1)
171: listenSocket.Send(RecvBuffer2);
您不应该尝试发送此侦听套接字。您需要发送使用EndAccept()创建的套接字。 (代码中的winSock2 - 但您需要以不同的方式对其进行范围调整。)
答案 1 :(得分:1)
侦听TCP套接字只有一个功能 - 接受客户端连接。该连接将占用新套接字描述符,即将为每个新客户端连接创建一个新套接字(在C中,accept(2)
系统调用返回的内容)。
您无法在侦听套接字上send(2)
或recv(2)
数据。