代码之家  ›  专栏  ›  技术社区  ›  lesderid

为什么我不能再发送到监听插座?

  •  0
  • lesderid  · 技术社区  · 16 年前

    我正在为一个C语言的在线游戏编写一个简单的代理(更像是一个数据包记录器)。

    客户->服务器:登录数据包-我的代理接收数据包,显示数据包并将其发送到服务器。

    服务器->客户:已连接!数据包-我的代理再次接收数据包,它也会再次显示数据包,但当试图将其发送到客户端时,它会显示:

    “发送或接收数据的请求被拒绝,因为套接字未连接并且(使用sendto调用在数据报套接字上发送时)未提供地址。”

    http://lesderid.pastebin.com/NkEy7qQp

    2 回复  |  直到 16 年前
        1
  •  1
  •   Mark H    16 年前
    171: listenSocket.Send(RecvBuffer2);
    

    你不应该试图发送这个监听插座。您需要发送使用EndAccept()创建的套接字(winSock2在您的代码中-但是您需要以不同的方式来定义它的范围。)

        2
  •  1
  •   Nikolai Fetissov    16 年前

    侦听TCP套接字只有一个函数-接受客户端连接。连接将占用 新建套接字描述符 accept(2) 系统调用返回)。

    send(2) 或 recv(2) 监听套接字上的数据。

    推荐文章