免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3580 | 回复: 9
打印 上一主题 下一主题

求教一个多线程socket问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-23 11:56 |只看该作者 |倒序浏览
有一个多线程服务器,希望和每一个远程客户端只有一个连接。
例如:
如果线程SA和远程CA建立了连接,当线程SB想和CA(同一个ip和端口)连接的时候,
和SA共用一个连接。
这种情况只是知道CA的ip和端口,没有全局的记录连接的数据,线程SB是否能确定有其他线程已经和CA建立了连接,
并取得这个文件描述符。

谢谢!!

论坛徽章:
0
2 [报告]
发表于 2007-10-23 13:35 |只看该作者

回复 #1 tourer 的帖子

顶一下,没人回答吗?还是我问的不清楚?

论坛徽章:
0
3 [报告]
发表于 2007-10-23 13:51 |只看该作者
没看懂你想干什么

论坛徽章:
0
4 [报告]
发表于 2007-10-23 14:31 |只看该作者

回复 #3 xB1ue 的帖子

就是很多线程,如果有一个线程A想和另一个服务器建立socket连接,先看看其他线程是不是已经建立了连接,
如果已经有一个线程B已经和这个服务器建立了连接,那么线程A和线程B共用这个socket连接。

只知道远程服务的ip地址和端口号,没有全局的已有连接的记录。

不知道说清楚没有

论坛徽章:
0
5 [报告]
发表于 2007-10-23 14:45 |只看该作者
用线程间的同步不就可以解决了么?也就是,B建立连接的时候通知A一声.

论坛徽章:
0
6 [报告]
发表于 2007-10-23 14:58 |只看该作者

回复 #5 baohuaihuai 的帖子

这个之间没有同步,现在就是想通过ip和端口号来判断

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
7 [报告]
发表于 2007-10-23 15:14 |只看该作者
线程SB是否能确定有其他线程已经和CA建立了连接,
IP层提交给4层,4层解析,显然发现有端口已经注册占用了,返回一个错误抱文到3层传出去

论坛徽章:
0
8 [报告]
发表于 2007-10-23 15:36 |只看该作者

回复 #7 smalloc 的帖子

楼上的太底层了, 有没有api可以使用

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
9 [报告]
发表于 2007-10-23 16:23 |只看该作者
man connect:
SYNOPSIS
       #include <sys/types.h>
       #include <sys/socket.h>

       int  connect(int  sockfd,  const  struct sockaddr *serv_addr, socklen_t
       addrlen);

RETURN VALUE
       If  the connection or binding succeeds, zero is returned.  On error, -1
       is returned, and errno is set appropriately.
ERRORS
       The following are general socket  errors  only.   There  may  be  other
       domain-specific error codes.

       EBADF  The  file  descriptor is not a valid index in the descriptor ta-
              ble.

       EFAULT The socket structure  address  is  outside  the  user&acirc;

论坛徽章:
0
10 [报告]
发表于 2007-10-23 16:32 |只看该作者
多个客户端共用一个连接?
还可以这样的吗?我怎么不zd
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP