当前位置: 技术问答>linux和unix
socket中server是如何向多个client发送消息的?
来源: 互联网 发布时间:2015-08-26
本文导语: rt server要如何同时接受多个client的消息(通过同一个port)? 在socket中server要处理多个client发送的消息,在处理完后要将处理结果发给部分或全部client。 主要是server要如何判断受到的消息是来自于哪个client,client发送...
rt
server要如何同时接受多个client的消息(通过同一个port)?
在socket中server要处理多个client发送的消息,在处理完后要将处理结果发给部分或全部client。
主要是server要如何判断受到的消息是来自于哪个client,client发送的消息中是如何描述自己的地址的?
server要如何同时接受多个client的消息(通过同一个port)?
在socket中server要处理多个client发送的消息,在处理完后要将处理结果发给部分或全部client。
主要是server要如何判断受到的消息是来自于哪个client,client发送的消息中是如何描述自己的地址的?
|
accept到以后的套接字和struct sockaddr *addr里面,是有client的信息的。
|
socket描述符吗?
通常我们都是使用一个socket描述符来listen一个client的connect.
一旦连接成功就生成了连接的socket描述符,一个client拥有一个独立的socket描述符和server通信。
此时,系统中就存在了两种描述符,一是监听的,一是进行和client的通信的。
通常我们都是使用一个socket描述符来listen一个client的connect.
一旦连接成功就生成了连接的socket描述符,一个client拥有一个独立的socket描述符和server通信。
此时,系统中就存在了两种描述符,一是监听的,一是进行和client的通信的。
|
listen(socket, accept_number);
while(1)
{
socket_1 = accept(..)
create thread to process the client using the socket accept funtion returned .
while(1)
{
socket_1 = accept(..)
create thread to process the client using the socket accept funtion returned .
|
用线程要避免数据共享冲突干嘛用一个缓冲区,如果处理相同可以编写一个函数多个线程调用就行了
|
一个socket \tcp方式的就包括SERVERIP+PORT,CLIENTIP+PORT
所以应该是每真正建立一个SOCKET连接,系统就知道了CLIENT如何连接的
所以应该是每真正建立一个SOCKET连接,系统就知道了CLIENT如何连接的