+ -
当前位置:首页 → 问答吧 → socket 接收与发送请教

socket 接收与发送请教

时间:2010-08-24

来源:互联网

定义两个结构体
  1. typedef struct chat_package
  2. {
  3.         signed char type;
  4.         char from[ID_SIZE];
  5.         char to[ID_SIZE];
  6.         char message[MESSAGE_SIZE];
  7. }chat_package;
复制代码
  1. typedef struct protocol_package
  2. {
  3.         char  pid[PID_SIZE];
  4.         char  plen[PLEN_SIZE];
  5. }protocol_package;
复制代码
接收客户端数据分两次
  1. recv(new_server_socket, recv_buf, protocol_len, 0);
复制代码
  1. recv(new_server_socket, recv_buf, protocol_len, 0);
复制代码
发送分两次:
  1. send(client_socket, protocol_buffer, PROTOCOL_SIZE, 0);
  2. send(client_socket, receive_buffer, plen-PROTOCOL_SIZE, 0);
复制代码
这样接收会不会出乱,
发送会不会出现一条没有发送完成,别外一条又发送的情况?

作者: youzlm   发布时间: 2010-08-24

根据send返回长度,判断是否发送完,没完继续发送剩余的数据

作者: hellioncu   发布时间: 2010-08-24

回复 hellioncu


    我也偿试过,,,但是客户端接到我的数据还是有一点问题。
会不会因为我因为并发太多照成的

作者: youzlm   发布时间: 2010-08-24



QUOTE:
回复  hellioncu


    我也偿试过,,,但是客户端接到我的数据还是有一点问题。
会不会因为我因为并 ...
youzlm 发表于 2010-08-24 09:17




    没见你说多线程之类的,哪来的并发?

作者: hellioncu   发布时间: 2010-08-24

本帖最后由 光速 于 2010-08-24 09:30 编辑

我想不会乱的,因为你的客户端所发送的数据走的是同一个SOCKET。

作者: 光速   发布时间: 2010-08-24

回复 光速


   客户端压测是这样子做(flash版的)

实例500个socket连接,每1秒500个socket周时一起发送数据。

这样可行吗?

作者: youzlm   发布时间: 2010-08-24