当前位置: 技术问答>linux和unix
问题多多?
来源: 互联网 发布时间:2016-04-06
本文导语: 写了一个TCP通讯的服务端程序,遇到了很多问题,放在这里几个寻求解决方案哈。(每问20分吧。我都不知道自己有多少分,在哪里看) 1.select只能检测1024个描述符,并且同时到达的连接请求超过1024,accept在接收1024...
写了一个TCP通讯的服务端程序,遇到了很多问题,放在这里几个寻求解决方案哈。(每问20分吧。我都不知道自己有多少分,在哪里看)
1.select只能检测1024个描述符,并且同时到达的连接请求超过1024,accept在接收1024个描述符后再创建新连接会报错,而客户端的connect仍然是成功的,请问一下这种情况一般你们是怎么处理?如果我想通知客户端,服务器现在忙,应该如何控制?就是说要通知在1024后面的那些客户端连接服务器现在忙,请稍后连接( 不知道我的意思表达清楚没有?)
2."bind出错: Address already in use ",这种错误有没有好的解决方法?可以用setsockopt设置端口重用,但有时这种方法并没有效果,请问什么原因,而且好像并不是所有操作系统都有产效。
3.线程的可移植性差在哪里?pthread_create,pthreat_exit,pthread_detach这些调用在aix上和linux用法都是一样的吗?
1.select只能检测1024个描述符,并且同时到达的连接请求超过1024,accept在接收1024个描述符后再创建新连接会报错,而客户端的connect仍然是成功的,请问一下这种情况一般你们是怎么处理?如果我想通知客户端,服务器现在忙,应该如何控制?就是说要通知在1024后面的那些客户端连接服务器现在忙,请稍后连接( 不知道我的意思表达清楚没有?)
2."bind出错: Address already in use ",这种错误有没有好的解决方法?可以用setsockopt设置端口重用,但有时这种方法并没有效果,请问什么原因,而且好像并不是所有操作系统都有产效。
3.线程的可移植性差在哪里?pthread_create,pthreat_exit,pthread_detach这些调用在aix上和linux用法都是一样的吗?
|
1、用epoll,无此限制
2、设置端口重用,解决的是处于TIME_WAIT状态的端口重用问题。正在使用的处于监听、连接等状态的端口是无法再次bind的。
3、posix线程是标准,都一样。
2、设置端口重用,解决的是处于TIME_WAIT状态的端口重用问题。正在使用的处于监听、连接等状态的端口是无法再次bind的。
3、posix线程是标准,都一样。
|
奇怪啊,你的setsockopt的语句是怎么写的?我写程序经常用这个都是好好的啊。是不是你程序别的地方又对这个sockt的属性进行了修改?
|
哈哈,只有第0个问题,我会:
“我都不知道自己有多少分,在哪里看”
在左边,我的社区-->社区积分-->剩余可用分
select方式只能处理少量连接吧。连接数量太多,select方式可能就不适用了,要找其他方式。
“我都不知道自己有多少分,在哪里看”
在左边,我的社区-->社区积分-->剩余可用分
select方式只能处理少量连接吧。连接数量太多,select方式可能就不适用了,要找其他方式。
|
问题2 我知道就是这样的,没错的。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。