关于SOCKET程序设计?

youlione 2003-09-14 12:35:10
问题1:

TServerSocket怎么管理连连接?
如在标准SOCKET设计可以通过一个数组来标识

问题2:
在BCB中采用标准SOCKET进行设计,并采用多线程,如一个接线程一个发送线程
,但是我遇到一个问题,在类似以下的代码中:

while(1)
{

select
if(是新连接){
加入监听队列
}else{
通过accept接收
启动发送线程
}
}
我遇了这么一个问题: 当我在接收到数据,启动发送线程,而接收线程在select处阻塞了,而发送线程没有启动!

请问是什么原因?
...全文
38 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljlln 2003-09-23
  • 打赏
  • 举报
回复
学习
asimpleman 2003-09-15
  • 打赏
  • 举报
回复
gz
kingcaiyao 2003-09-14
  • 打赏
  • 举报
回复
只是提供部分代码片段,并不能了解你的编程思路,也很难下结论,需要看到部分代码(包括客户端和服务器端)
kingcaiyao 2003-09-14
  • 打赏
  • 举报
回复
TServerSocket是对在socket api的封装,它包括两种工作模式:阻塞模式和非阻塞模式,对于阻塞模式,TServerSocket用到了一个线程缓冲区来管理连接数,你看看VCL的源代码就知道了。
2.我觉得你的思路是否有点混乱(或许我没有明白你的真意),你上面写的代码片段应该是放在服务器端,在客户端发送数据可以用多线程也可以不用多线程(这取决于你对客户端socket工作模式的设置,上面的代码应该是:
//开始监听客户端的socket
while(1){
select
if(是新连接){
//加入监听队列
}
else{
通过accept接收
启动接收线程来接收数据
}
}

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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