免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1602 | 回复: 4
打印 上一主题 下一主题

求助 -select 后的 read 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-20 13:45 |只看该作者 |倒序浏览
向服务器发送两个string. 服务器有没有可能区分开这两个string ? 就是第一次 read 时, 是str1, 第二次 read 时是str2 ?

客户端:
int main(void)
{   
    fd = socket();
    
    connect(fd);
    
    write(str1);
    write(str2);
    
    return 0;
}


服务器:
int main(void)
{   
    ListenSocket s;
    
    s.Bind(1234);
    
    while (1) {
        Select();
        
        read(buf);
    }   
    
    return 0;
}

论坛徽章:
0
2 [报告]
发表于 2008-02-20 14:06 |只看该作者
TCP是流传播, 服务器接收之后需要通过其它的方法来区分开这两个string.

论坛徽章:
0
3 [报告]
发表于 2008-02-20 14:39 |只看该作者
原帖由 scutan 于 2008-2-20 14:06 发表
TCP是流传播, 服务器接收之后需要通过其它的方法来区分开这两个string.


你的意思是建立协议什么的?

论坛徽章:
0
4 [报告]
发表于 2008-02-20 14:50 |只看该作者
原帖由 sihan 于 2008-2-20 14:39 发表


你的意思是建立协议什么的?


嗯. 对. 你传送的两端必须明确你此时传送的内容表示的是什么.
我以前也对你说的这个问题不理解, 我当时就自己写了一些程序来试, 就是另一端连续两次send, 这一端只一次recv, 看到底能够接收到什么. 你也可以自己写写试试.

论坛徽章:
0
5 [报告]
发表于 2008-02-20 14:52 |只看该作者
原帖由 scutan 于 2008-2-20 14:50 发表


嗯. 对. 你传送的两端必须明确你此时传送的内容表示的是什么.
我以前也对你说的这个问题不理解, 我当时就自己写了一些程序来试, 就是另一端连续两次send, 这一端只一次recv, 看到底能够接收到什么. 你也可 ...


呵呵, 我刚试过, 确实不行。 谢谢你哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP