socket问题,两个客户端如何通过服务器端进行通信。
我初学socket,今天写了第一个socket,能够使多个客户端与服务器端通信,怎样能实现多个客户端通过服务器端进行转发呢?用什么区别来自不同客户端的连接?
还有一个问题,这些我都是在本地进行的。服务器的地址是127.0.0.1
当我把服务器程序放到另一台机器上时,比如192.168.1.113,我从客户端再去连接服务器程序就连不上了。是不是有防火墙或者权限的问题?
[解决办法]
实现两个客户端的通信,服务器要根据接收到客户端包的内容来判断发送数据给哪个客户端,包中包含着另一个客户端的信息。。。
区别不同的客户端,可以根据服务器端接收到连接的套接字信息来判断。。。
[解决办法]
楼主应该懂 点对点,端对端 这些东西的?
点对点:IP TO IP
端对端:PORT TO PORT / IP:PORT TO IP:PORT
楼主可以试一试这样:
首先确保 Client端 与 Server端 在相同的网段,
这个楼主应该懂的,
然后可以为每一个 Client客户端 分配一个不同的 PORT,比如:
Client01: 192.168.1.113:01
Client02: 192.168.1.113:02
这样即使 Client端 使用相同的 IP 也可以识别不同的 Client端,,
[解决办法]
你在服务器端维护一个客户端连接列表,列表包括客户端的套接字(accept返回后的)、IP和Port等,根据列表来做你想做的事情吧
[解决办法]
在服务器端写个数组或列表吧 在Accept后就把客户端放进列表或数组,发送时用个for循环发送消息给每个客户端 思路和楼上差不多 具体代码如果楼主想要 留个邮箱吧 我才做了服务器端的中转程序 可以给你学习下!
希望对你有帮助
期待接分
[解决办法]
服务器端在accept的时候你可以记录下这个连接的socket句柄,对应的客户端的IP等信息, 用个数组之类的来维护.至于端口号,一个端口号就可以对应多个客户端.