我正在Delphi中开发一个消息传递系统。我通过调制解调器在LAN和DHCP服务器上使用TcpClient(套接字)和TcpServer(套接字)IPv4。
这意味着所有计算机都获得示例196.168.0 ........ IP地址。在我的情况下,其中一台计算机将成为服务器。什么是识别我的特殊服务器的方法,因为大多数调制解调器支持254台计算机(这是正确的)。
使用非阻塞(套接字)传输流,如何在服务器上管理/识别发送者的流。
人们应该使用哪些首选端口,因为应该避免使用电子邮件,HTTP,FTP,SQL端口,所以我想使用一个不常见的端口来消除冲突。我之前没有这样做,也找不到理想的代码。
答案 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)
NetMask
确定。大多数基于家庭的局域网使用255.255.255.0的网络,这确实意味着最多可以有254台计算机连接到这样的网络,其中只能更改IP地址的最后部分(字节),前三个字节保持不变。但是,如果您将网络NetMask
更改为255.255.0.0,则最多可以将65535台计算机连接到此类网络,并且可以更改其IP的最后两个(字节)。
您可以使用TIdNetworkCalculator组件检查不同的可能网络配置,该组件允许您根据某些NetMask对任何IP地址进行有效性检查。或者如果您愿意,可以列出所有可用的地址作为字符串列表
您还可以阅读有关NetMask
的更多信息并在网络上创建子网:
https://en.wikipedia.org/wiki/Subnetwork