VC一个超简单的网络编程问题

duguowei 2008-12-04 10:20:57
以前写过一点JAVA,最近由于工作原因要用到VC..
想问一下在VC中怎么先接收一些数据,然后再接着这个数据继续接收呢?
举个例子,我先接收50个字节,然后分析。然后再从这50个字节后再继续接收10个字节..
我使用Receive... 第一次接收没问题,但第二次再接收的时候就自动退出了不晓得是啥个意思...

而在java中,我可以通过
connection = new Socket("192.168.0.12", 4000);
in = connection.getInputStream();

然后我直接 in.read(buffer,0,50);这样就读出50个字节了, 然后要再读10个字节,直接in.read(buffer,50,10);这样就可以了...
我想请问一下,如此这般在VC中该如何呢?
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nizhaorong 2008-12-11
  • 打赏
  • 举报
回复
select,简单,异步
jawiudi 2008-12-10
  • 打赏
  • 举报
回复
异步选择,处理FD_READ事件。
keven1868 2008-12-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 duguowei 的帖子:]
以前写过一点JAVA,最近由于工作原因要用到VC..
想问一下在VC中怎么先接收一些数据,然后再接着这个数据继续接收呢?
举个例子,我先接收50个字节,然后分析。然后再从这50个字节后再继续接收10个字节..
我使用Receive... 第一次接收没问题,但第二次再接收的时候就自动退出了不晓得是啥个意思...

而在java中,我可以通过
connection = new Socket("192.168.0.12", 4000);
in = connection.getInputStream();

然后…
[/Quote]

你的发送端是哪里实现的?通讯过程是怎样的?类似的程序在编写之前应该先确定通讯协议
redhat7890 2008-12-10
  • 打赏
  • 举报
回复
强烈建议使用select
qq525931 2008-12-05
  • 打赏
  • 举报
回复
看看select的例程。
http://www.wantsoft.com/article/33.htm
blackcat242 2008-12-04
  • 打赏
  • 举报
回复
一样的,你先接收50个字节,分析完再接收10字节
或者你全都读进缓冲区,先分析前50个,删除这个50个,再分析10个,就是搞个队列来存放
Win32Coder 2008-12-04
  • 打赏
  • 举报
回复
通信的另一方应该是先发送50字节,再发送剩余部分吧。

可以用select在你接受的socket句柄上检测是否有读信号,有你就收数据,循环接受一直到接收满50字节(设超时)。

然后你解析,继续接受后续数据
duguowei 2008-12-04
  • 打赏
  • 举报
回复
你指的是Receivefrom吗.. 这个我也试过了...
ouyh12345 2008-12-04
  • 打赏
  • 举报
回复
非阻塞
scq2099yt 2008-12-04
  • 打赏
  • 举报
回复
参见下面文章:
http://www.joyvc.cn/NetworkAndCommunication/NetworkAndCommunicationMain00001.html
lijianli9 2008-12-04
  • 打赏
  • 举报
回复
看你的发送端了,从你JAVA代码看来是一下子发送过来的吧,
你可以用select等待,该socket上是否有可读数据,如果有就一下子读60个字节,然后再分析出你要的50和10个。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧