请教各位Socket方面的问题:
使用tcp协议
服务端接收回调函数ReceiveCallBack中
接收缓冲区byte[] b = new byte[2],
a客户端发送了:abc,b客户端发送了:def
因为tcp消息是连续的,服务端会不会接受了a后又接受了d,
这样我怎么区分得到abc和def?
定义接收缓冲区的大小有什么要求和习惯吗?
谢谢各位。
使用tcp协议
服务端接收回调函数ReceiveCallBack中
接收缓冲区byte[] b = new byte[2],
a客户端发送了:abc,b客户端发送了:def
因为tcp消息是连续的,服务端会不会接受了a后又接受了d,
这样我怎么区分得到abc和def?
定义接收缓冲区的大小有什么要求和习惯吗?
谢谢各位。
解决方案 »
- 做了个计算器界面,点击数字键在当前光标选中的文本框输入,选中另一个文本框再点数字键则在这个文本框输入
- 一个关于enum的问题,求高手
- Bitmap bm = new Bitmap(27000, 27000);显示无效参数
- swith-case语句的一道菜鸟题
- 这样的查询在Access中该如何实现?
- 关于C#的微博设计
- 先安装的.net环境,后配置的IIS出现的问题。visual Studio.net以检测到指定的WEB运行的不是ASP.net 1.1版。
- 关于MMS网关的问题
- 关于堆栈的问提
- 怎样在VB或者VC中用Winsock连接用C#写的服务程序,并且收发数据?
- 如何实现按钮
- 为什么要用析构?
1 使用固定长度:最简单但是有可能是最昂贵的方案,设计一种协议,永远以固定长度传递消息
2 使用消息尺寸:在消息包之前先传送该消息的长度,然后根据长度创建缓冲区大小,并接收数据
3 使用消息标记:在系统中定义一个字符作为消息结束的标记,接收端逐字节接收,当收到标记后将前面收到的数据组合
4 使用C#流 NetWorkStream类
建议楼主看看《C#网络应用编程》,里面有详细介绍,如果需要,给我邮件,我发电子书给你,这本书已经绝版了
[email protected]
我是lz,谢谢你的回答。
我的邮件:[email protected]
谢谢。
因为tcp消息是连续的,服务端会不会接受了a后又接受了d,
----------
当然会...你是两个客户端...接受消息是的两个独立线程...两个独立的缓冲区...它同时接受也不用你操心...跟消息边界扯不上关系...
跟消息边界扯不上关系...
----------------
tcp消息边界是怎么回事?我感觉特别晕
因为tcp消息是连续的,服务端会不会接受了a后又接受了d,
这样我怎么区分得到abc和def? 两个客户端连接就是两个线程,看你有回调应该是异步通信,用socket句柄去区分