您的位置:程序门 -> c/c++ ->



再次请教socket多线程问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


再次请教socket多线程问题[已结贴,结贴人:dodoboy]
发表于:2007-07-03 10:24:37 楼主
多个客户端与服务器端进行通信,接收数据时是不是服务器要为每个客户端开辟一个接收buffer?处理完数据后怎么对应该客户端发送数据呢?
发表于:2007-07-03 10:25:511楼 得分:0
为了保证并行数据交换,有时需要怎么做
处理完数据后怎么对应该客户端发送数据呢?
看你的要求了
发表于:2007-07-03 10:27:542楼 得分:0
为每个客户端开辟一个接收buffer不是必须的吗?客户端发送数据是随机的,不是顺序来的。
发表于:2007-07-03 10:40:173楼 得分:10
多个客户端与服务器端进行通信,接收数据时是不是服务器要为每个客户端开辟一个接收buffer?处理完数据后怎么对应该客户端发送数据呢?
----------------------------------
1,是为每个client分配一个buff.
2,当client连接到server上时,server为每个client新分配一个socket连接,读写都是针对这个socket.
发表于:2007-07-03 10:46:144楼 得分:0
为每个客户端开辟一个接收buffer不是必须的吗?客户端发送数据是随机的,不是顺序来的。
同时两个人发送呢??
还有在处理1时2发来了数据
发表于:2007-07-03 10:57:055楼 得分:5
没听说过要为每个客户端分配一个buf!要是1w个客户端,那服务器的内存不是不够了?服务器的buf是针对服务器的网卡内存而定的,每次是把网卡中的内存拷贝过来。

你用的是sdk的socket吧,服务器accept的时候里面有个out参数,就是客户端的socket,recv的时候也有个out参数,也是客户端的socket。如果你用的是消息机制,那消息中的wparam就是客户端的socket!
发表于:2007-07-03 11:01:056楼 得分:0
也可以是冲突时再分配
发表于:2007-07-03 11:31:517楼 得分:0
我用的是sdk的socket,那要是不分配buffer的话怎么区分来自不同客户端的数据?可以一起处理数据,但是处理完后怎么再分别对应不同的客户端把数据发送出去呢?
发表于:2007-07-03 11:43:178楼 得分:0
你是指内核中的buf吧.在unix系统中采用mbuf链处理网络数据的输入输出.
每当有数据网卡接收完成,都会被拷贝入内核的mubf链中,mubf结构中已经保存了
源地址和源端口号,这就可以区分数据来自哪个客户端.win下是怎么实现的我就不清楚了,
想详细的了解自己看tcp/ip详解第二卷吧.
发表于:2007-07-03 12:17:219楼 得分:5
个客户端与服务器端进行通信,接收数据时是不是服务器要为每个客户端开辟一个接收buffer?处理完数据后怎么对应该客户端发送数据呢?
==========================
使用同一個buffer
包在設計的時候要有特定的結構,   通過這個結構信息來判斷   你是谁
发表于:2007-07-03 14:57:4010楼 得分:0
我用的是sdk的socket,那要是不分配buffer的话怎么区分来自不同客户端的数据?可以一起处理数据,但是处理完后怎么再分别对应不同的客户端把数据发送出去呢?

//////////////////////////////////////////////////////////////////////////////

创建结构链表,每个节点储存信息和socket


快速检索

最新资讯
热门点击