顺便说句,有什么这方面的资料或书能推荐点么,就这点分,全给了。。。
9 个解决方案
#1
每个socket的句柄都不一样,其他信息,可以放到sruct中发送,返回也一样,根据返回信息就知道是那个按钮发送的
#2
服务器accept后返回的套接字啊,把这个套接字丢到任务线程去,对于每一个客户端都开一个工作线程,负责一一对应的处理业务!
#3
也就是说,在服务端建立4个监听socket(1、2、3、4)和一个返回数据的socket(psocket),用四个if语句:
if(socket1->Accept(*psocket){返回给BUTTON1的信息}
if(socket2->Accept(*psocket){返回给BUTTON2的信息}
if(socket3->Accept(*psocket){返回给BUTTON3的信息}
if(socket4->Accept(*psocket){返回给BUTTON4的信息}
TO bdmh和wjh173069597,这样就可以实现了发送对应的信息过去,并能在对应的按钮中正确显示是么?
还想请问下,一次建立4个监听的socket,会出现什么冲突么?
#4
服务端只建立一个侦听
BIND->LENTEN->ACEPT->SEND or RECV
同一个客户端,也只连接1次
CONNECT->SEND or RECV
如何区分4个按钮呢?
按钮1发消息1
按钮2发消息2
就可以了,消息1和消息2的消息头不一样,进行数据解析就可以了
BIND->LENTEN->ACEPT->SEND or RECV
同一个客户端,也只连接1次
CONNECT->SEND or RECV
如何区分4个按钮呢?
按钮1发消息1
按钮2发消息2
就可以了,消息1和消息2的消息头不一样,进行数据解析就可以了
#5
这里有两个问题
第一
客户端申请链接,服务器端监听到进行处理
这个时候服务器会构造一个socket和客户端通信
这个过程是一一对应的
也就是说每有一个客户端申请就会有一个相应的服务器端的socket与其进行通信
第二
关于服务器如何知道谁是谁这是有通信协议负责的
也就是说你要自己设置通信协议
服务器和客户端进行通信是都是靠解析协议来完成功能的
第一
客户端申请链接,服务器端监听到进行处理
这个时候服务器会构造一个socket和客户端通信
这个过程是一一对应的
也就是说每有一个客户端申请就会有一个相应的服务器端的socket与其进行通信
第二
关于服务器如何知道谁是谁这是有通信协议负责的
也就是说你要自己设置通信协议
服务器和客户端进行通信是都是靠解析协议来完成功能的
#6
让教授过TCP/IP协议编程的老师来解释吧:
服务器和客户端的2个进程通讯是通过1个5元组进行一一对应的:
协议 , 服务端IP,服务端0的端口号,客户端IP,客户端端口号
服务器和客户端必须就有相同的协议才能通讯,这里一般就是TCP/IP,
服务器有自己的IP地址和端口号,客户端 在连接的时候根据他们连接服务器,同时把自己的IP地址和端口号告诉服务器. 这时候在服务器端保留一个客户端的套接字句柄,
及 SOCKET cliSock = accept()返回的套接字句柄,每个连接都需要accept()后双方才能通信,这样在服务端就有 cliSock1 ,clisock2,clisock3....需要和谁通信是使用哪个clisock进行 recv和send.而客户端却不需要知道那么多,只要把消息发到服务器就可以了。。
看看任泰明的 TCP/IP协议编程,适合初学者
服务器和客户端的2个进程通讯是通过1个5元组进行一一对应的:
协议 , 服务端IP,服务端0的端口号,客户端IP,客户端端口号
服务器和客户端必须就有相同的协议才能通讯,这里一般就是TCP/IP,
服务器有自己的IP地址和端口号,客户端 在连接的时候根据他们连接服务器,同时把自己的IP地址和端口号告诉服务器. 这时候在服务器端保留一个客户端的套接字句柄,
及 SOCKET cliSock = accept()返回的套接字句柄,每个连接都需要accept()后双方才能通信,这样在服务端就有 cliSock1 ,clisock2,clisock3....需要和谁通信是使用哪个clisock进行 recv和send.而客户端却不需要知道那么多,只要把消息发到服务器就可以了。。
看看任泰明的 TCP/IP协议编程,适合初学者
#7
为什么要客户端建立四个socket?
客户端有一个socket保持和服务端连接,该过程放在一个线程里。界面线程和工作线程可以进行双向通信。
每当button按下,可以在发送数据里带上自身的标识,服务器处理完了,返回信息中也带上相应的标识。这样回到客户端后,可以区分该给哪个button。
客户端有一个socket保持和服务端连接,该过程放在一个线程里。界面线程和工作线程可以进行双向通信。
每当button按下,可以在发送数据里带上自身的标识,服务器处理完了,返回信息中也带上相应的标识。这样回到客户端后,可以区分该给哪个button。
#8
两个进程可以跨网络的 关系就是你应我答 通过底层驱动命令硬件直接通讯 如果具体端口有合法数据驱动程序在发送给应用程序
#9
可以这样:
当你点击按钮时候,让客户端自己发送一个标识哪个socket的int的数据,服务器端接到后,读取接收到的int数据,来判定是点的哪个按钮,从而返回对应的数据
#define SOCKET_1 1001
#define SOCKET_2 1002
#define SOCKET_3 1003
#define SOCKET_4 1004
当你点击按钮时候,让客户端自己发送一个标识哪个socket的int的数据,服务器端接到后,读取接收到的int数据,来判定是点的哪个按钮,从而返回对应的数据
#1
每个socket的句柄都不一样,其他信息,可以放到sruct中发送,返回也一样,根据返回信息就知道是那个按钮发送的
#2
服务器accept后返回的套接字啊,把这个套接字丢到任务线程去,对于每一个客户端都开一个工作线程,负责一一对应的处理业务!
#3
也就是说,在服务端建立4个监听socket(1、2、3、4)和一个返回数据的socket(psocket),用四个if语句:
if(socket1->Accept(*psocket){返回给BUTTON1的信息}
if(socket2->Accept(*psocket){返回给BUTTON2的信息}
if(socket3->Accept(*psocket){返回给BUTTON3的信息}
if(socket4->Accept(*psocket){返回给BUTTON4的信息}
TO bdmh和wjh173069597,这样就可以实现了发送对应的信息过去,并能在对应的按钮中正确显示是么?
还想请问下,一次建立4个监听的socket,会出现什么冲突么?
#4
服务端只建立一个侦听
BIND->LENTEN->ACEPT->SEND or RECV
同一个客户端,也只连接1次
CONNECT->SEND or RECV
如何区分4个按钮呢?
按钮1发消息1
按钮2发消息2
就可以了,消息1和消息2的消息头不一样,进行数据解析就可以了
BIND->LENTEN->ACEPT->SEND or RECV
同一个客户端,也只连接1次
CONNECT->SEND or RECV
如何区分4个按钮呢?
按钮1发消息1
按钮2发消息2
就可以了,消息1和消息2的消息头不一样,进行数据解析就可以了
#5
这里有两个问题
第一
客户端申请链接,服务器端监听到进行处理
这个时候服务器会构造一个socket和客户端通信
这个过程是一一对应的
也就是说每有一个客户端申请就会有一个相应的服务器端的socket与其进行通信
第二
关于服务器如何知道谁是谁这是有通信协议负责的
也就是说你要自己设置通信协议
服务器和客户端进行通信是都是靠解析协议来完成功能的
第一
客户端申请链接,服务器端监听到进行处理
这个时候服务器会构造一个socket和客户端通信
这个过程是一一对应的
也就是说每有一个客户端申请就会有一个相应的服务器端的socket与其进行通信
第二
关于服务器如何知道谁是谁这是有通信协议负责的
也就是说你要自己设置通信协议
服务器和客户端进行通信是都是靠解析协议来完成功能的
#6
让教授过TCP/IP协议编程的老师来解释吧:
服务器和客户端的2个进程通讯是通过1个5元组进行一一对应的:
协议 , 服务端IP,服务端0的端口号,客户端IP,客户端端口号
服务器和客户端必须就有相同的协议才能通讯,这里一般就是TCP/IP,
服务器有自己的IP地址和端口号,客户端 在连接的时候根据他们连接服务器,同时把自己的IP地址和端口号告诉服务器. 这时候在服务器端保留一个客户端的套接字句柄,
及 SOCKET cliSock = accept()返回的套接字句柄,每个连接都需要accept()后双方才能通信,这样在服务端就有 cliSock1 ,clisock2,clisock3....需要和谁通信是使用哪个clisock进行 recv和send.而客户端却不需要知道那么多,只要把消息发到服务器就可以了。。
看看任泰明的 TCP/IP协议编程,适合初学者
服务器和客户端的2个进程通讯是通过1个5元组进行一一对应的:
协议 , 服务端IP,服务端0的端口号,客户端IP,客户端端口号
服务器和客户端必须就有相同的协议才能通讯,这里一般就是TCP/IP,
服务器有自己的IP地址和端口号,客户端 在连接的时候根据他们连接服务器,同时把自己的IP地址和端口号告诉服务器. 这时候在服务器端保留一个客户端的套接字句柄,
及 SOCKET cliSock = accept()返回的套接字句柄,每个连接都需要accept()后双方才能通信,这样在服务端就有 cliSock1 ,clisock2,clisock3....需要和谁通信是使用哪个clisock进行 recv和send.而客户端却不需要知道那么多,只要把消息发到服务器就可以了。。
看看任泰明的 TCP/IP协议编程,适合初学者
#7
为什么要客户端建立四个socket?
客户端有一个socket保持和服务端连接,该过程放在一个线程里。界面线程和工作线程可以进行双向通信。
每当button按下,可以在发送数据里带上自身的标识,服务器处理完了,返回信息中也带上相应的标识。这样回到客户端后,可以区分该给哪个button。
客户端有一个socket保持和服务端连接,该过程放在一个线程里。界面线程和工作线程可以进行双向通信。
每当button按下,可以在发送数据里带上自身的标识,服务器处理完了,返回信息中也带上相应的标识。这样回到客户端后,可以区分该给哪个button。
#8
两个进程可以跨网络的 关系就是你应我答 通过底层驱动命令硬件直接通讯 如果具体端口有合法数据驱动程序在发送给应用程序
#9
可以这样:
当你点击按钮时候,让客户端自己发送一个标识哪个socket的int的数据,服务器端接到后,读取接收到的int数据,来判定是点的哪个按钮,从而返回对应的数据
#define SOCKET_1 1001
#define SOCKET_2 1002
#define SOCKET_3 1003
#define SOCKET_4 1004
当你点击按钮时候,让客户端自己发送一个标识哪个socket的int的数据,服务器端接到后,读取接收到的int数据,来判定是点的哪个按钮,从而返回对应的数据