前言
最近在玩川崎机器人,在玩的过程中,机器人通信程序使用的是官方给的一个案例程序,案例程序中机器人为服务器时,只能服务一个客户端,这样子的服务器就算不上服务器。
于是,为了能让机器人服务多个客户端,博主决定在案例程序的基础上进行优化,实现一个真正的服务器,同时,记录一下自己的学习过程。
正文
1.首先了解一下川崎机器人做服务器时会用到的TCP通信命令
- TCP_LISTEN 将一个自己给定的端口号用来创建服务器
- TCP_ACCEPT 检查自己给定的端口号是否接收到连接请求
- TCP_SEND 发送数据给客户端
- TCP_RECV 接收客户端的数据
用好上面4个TCP通信命令就可以跟客户端正常通信了
2.然后了解一下这4个命令的参数
TCP_LISTEN 返回值,端口号
例如:TCP_LISTEN res,8888
要注意一点的就是端口号的范围:8192~65535
TCP_ACCEPT 返回值,端口号,超时时间,客户端IP地址数组
例如:TCP_ACCEPT clientid,8888,60,ip[1]
返回值如果大于0,表示有个客户端跟服务器连接成功,并且这个返回值就是服务器用来识别这个客户端的,收发数据命令的套接字号就可以用这个返回值,端口号跟TCP_LISTEN参数中