我编写的代码使用TCP在客户端服务器上的端口30175上发送数据。我遇到的问题是,即使我关闭每个字符串之间的端口,它总是从服务器端的同一端口发送,导致客户端无法将其识别为新连接或新数据。我希望能够指定我从服务器端发送的端口。该程序用c#编写。
答案 0 :(得分:0)
侦听端口30175的服务器将从端口30175发送数据。如果您需要不同的端口号,则必须在服务器上打开一个新端口并让客户端连接到它。
我的建议是你解决了客户端无法识别新连接和新数据的问题。
答案 1 :(得分:0)
首先,让我们解决您的问题。您选择Bind()
到套接字时服务器正在使用的端口。此时,您可以选择指定端口。 (如果你没有,那么它会为你选择一个可用的。)
我遇到的问题是......如果你的服务器始终有端口......那么客户端将如何知道Connect()
到哪个端口?
不同的方法
如前所述,不要关闭每个string
之间的端口......而应考虑设置协议。例如:让客户端连接,然后以ASCII格式发送int
的长度(string
)。然后发送ASCII byte[]
。在此之后,重复该过程。 (因此服务器可以为另一个int
做好准备。)
这样您的代码就不会花费binding/connecting
到套接字的时间。