【发布时间】:2009-09-12 20:11:25
【问题描述】:
这一定很明显,但是如何让winsock监听特定端口(接收数据?)我找不到让我这样做的方法!
抱歉,这可能太明显了。
我正在尝试制作一个聊天应用程序,它显然是在服务器/客户端设置中运行的。
【问题讨论】:
这一定很明显,但是如何让winsock监听特定端口(接收数据?)我找不到让我这样做的方法!
抱歉,这可能太明显了。
我正在尝试制作一个聊天应用程序,它显然是在服务器/客户端设置中运行的。
【问题讨论】:
你 bind 套接字,然后是 listen 和 accept 连接。在Getting started with WinSock 中有更详细的描述。 BSD 套接字还有一个good guide,您也应该阅读它。
对于 .NET,您可能需要 System.Net.Sockets.Socket(它是 Bind/Listen/Accept/Send/Receive 方法)而不是本机 WinSock,但概念是相同的,所以我将保留所有链接。
【讨论】:
使用 TCP 套接字时,您绑定、侦听和接受并最终接收。您可以通过here 找到一些教程或查看官方 MSDN 文档。
winsock API 基于 UNIX 的 BSD 套接字;所以它们非常相似。你可能想调查一下。我最近读的一本书是 Richard Stevens 的 UNIX Network Programming,他解释了几乎所有关于套接字的知识。
您也可以考虑在单独的线程中运行套接字以提高可读性和性能。
编辑:至于监听特定端口;这是 SOCKADDR_IN 结构的 sin.port 参数。
【讨论】: