TCP服务器TCPClient LAN ID和通信

时间:2016-07-11 01:02:12

标签: sockets delphi

我正在Delphi中开发一个消息传递系统。我通过调制解调器在LAN和DHCP服务器上使用TcpClient(套接字)和TcpServer(套接字)IPv4。

  1. 这意味着所有计算机都获得示例196.168.0 ........ IP地址。在我的情况下,其中一台计算机将成为服务器。什么是识别我的特殊服务器的方法,因为大多数调制解调器支持254台计算机(这是正确的)。

  2. 使用非阻塞(套接字)传输流,如何在服务器上管理/识别发送者的流。

  3. 人们应该使用哪些首选端口,因为应该避免使用电子邮件,HTTP,FTP,SQL端口,所以我想使用一个不常见的端口来消除冲突。我之前没有这样做,也找不到理想的代码。

3 个答案:

答案 0 :(得分:0)

1)支持的计算机数量取决于调制解调器的路由器部分。可以为您的服务器分配一个特定的IP地址(我使用的所有路由器都具有此功能)。或者每个客户端都可以向所有IP地址广播消息,并查看从哪个IP地址获得回复。

2)在发送数据流之前,您必须在客户端和服务器之间建立连接 - 客户端将通过IP地址识别自己。如果您需要更多内容,例如必须在流数据中发送的计算机名称或用户名。

3)请勿使用低于1024的端口号。

答案 1 :(得分:0)

感谢Michael Vincent,1 /我不希望用户在可能的情况下设置IP地址。必须有办法让计算机IP。获取前3个IP号码,搜索服务器回复的服务器,来自客户端的256个请求和最后一个IP。一个100mb / s的LAN应该在1/2秒内启用回复。 2 /端口超过1024确定,我理解一个端口值是一个字大小我看到MySQL经常使用3306但是什么是清晰的端口空间(如一个平面的清晰空间)。我读了公司使用的互联网端口,没有任何未使用的东西。没有人使用的旧MySQL是3300是安全的删除冲突或我最好发送一个ID字符串寻找服务器,并回复一个服务器ID字符串来获取ID。

答案 2 :(得分:0)

  1. 单个网络中的计算机数量由网络NetMask确定。大多数基于家庭的局域网使用255.255.255.0的网络,这确实意味着最多可以有254台计算机连接到这样的网络,其中只能更改IP地址的最后部分(字节),前三个字节保持不变。但是,如果您将网络NetMask更改为255.255.0.0,则最多可以将65535台计算机连接到此类网络,并且可以更改其IP的最后两个(字节)。 您可以使用TIdNetworkCalculator组件检查不同的可能网络配置,该组件允许您根据某些NetMask对任何IP地址进行有效性检查。或者如果您愿意,可以列出所有可用的地址作为字符串列表 您还可以阅读有关NetMask的更多信息并在网络上创建子网: https://en.wikipedia.org/wiki/Subnetwork
  2. 因为它已经很难过你应该在连接上交换服务器和客户端之间的一些识别数据。这在连接丢失的情况下也很有用,因为仅仅依赖IP地址是不够的,因为IP地址可以改变(不太可能在LAN上)
  3. 您应该使用哪个端口。这取决于很多因素。主要因素是目标计算机上的防火墙配置。还要注意,某些路由器可能有自己的内置防火墙,也可能阻塞某些端口。第二个因素是您的网络上的某些服务是否已使用特定端口 在任何情况下,我都建议您以一种易于识别的方式设计您的计算协议,因为这样您就可以过滤掉可能尝试使用与您的应用程序相同的端口的其他应用程序的可能干扰。
    您还可以在以下链接中找到有关此特定问题的更多建议:
  4. Assigning TCP/IP Ports for In-House Application Use

    Best TCP port number range for internal applications