申请一个CSocket类的实例,使用UDP协议,能否既发送又接收呢?

21020426 2005-07-28 08:28:59
这是我代码中的几条相关的东西,我的想法是,只建一个CSocket对像,然后再建一个线程,用这个线程去接收消息,还有一个Button,它负责发送消息.
1.在全局变量中定义:
CSocket m_socket ;
m_socket.Create(3550, SOCK_DGRAM) ;
2.在接收的线程中
while(1)
{
m_socket.Receive(.........) ;
.........
} ;
3.在那个Button的处理函数中
m_socket.SendTo(buff, sizeof(struct ...), 3550, "192.168.0.2") ;

这样写可以么?反正,我调了半天,一直有问题,想听听大家的看法.
...全文
231 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sct 2005-09-06
  • 打赏
  • 举报
回复
学习
AntonlioX 2005-07-31
  • 打赏
  • 举报
回复
CSocket可以用在线程里
关键是不能让两个线程同时进行收和发 ,需要加入同步保护
hbd321 2005-07-31
  • 打赏
  • 举报
回复
CSocket可以用在线程里
FatSpiders 2005-07-28
  • 打赏
  • 举报
回复
还是用CAsyncSocket好的。虽然CAsyncSocket有很多东西需要使用者很了解,但是比较CSOCKET的性能高呀各主方面都可以,因为CSocket是阻塞式的Receive时要收到数据才返回,而此时不能SendTo.建议使用CAsyncSocket
goodboyws 2005-07-28
  • 打赏
  • 举报
回复
CSocket不能用在线程里,用CAsyncSocket,或者你干脆直接用API
VCSQLVB 2005-07-28
  • 打赏
  • 举报
回复
肯定可以,
使用了不同的缓冲
东方匠心 2005-07-28
  • 打赏
  • 举报
回复
继承Socket在它的事件中处理不要用多线程 
要用多线程的话就用winsock
DentistryDoctor 2005-07-28
  • 打赏
  • 举报
回复
可以,两个工作者线程,一个SendTo,一个RecieveFrom

一直有问题?什么问题?
dirdirdir3 2005-07-28
  • 打赏
  • 举报
回复
不能用CSocket,因为CSocket是阻塞式的(Receive时要收到数据才返回,而此时不能SendTo),用CAsyncSocket试试。
singohwang 2005-07-28
  • 打赏
  • 举报
回复
路过 不懂 不过顶一下
nuaawenlin 2005-07-28
  • 打赏
  • 举报
回复
使用多线程的话,建议使用api

18,356

社区成员

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

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