日期:2014-05-16  浏览次数:20701 次

linux下的socket编程,有点疑问,求解释阿!
在学习 socket 编程,然后想到了几点疑问,想写个程序自己验证问题现在又写不了,没有环境。所以发帖上来问问。
问题1:线程函数能不能再创建线程?
问题2:一个进程能不能同时当客户端也当服务端?

------解决方案--------------------
问题1:线程函数能不能再创建线程?
可以


问题2:一个进程能不能同时当客户端也当服务端?
没见过,应该不行
------解决方案--------------------
你能实现就能行, 非阻塞connect配合select, 是可以的。
------解决方案--------------------
可以同时当客户端也当服务端。 创建多个套接字,其中一些用来监听,另外的用来连接。
------解决方案--------------------
问题2:一个进程能不能同时当客户端也当服务端?
可以。

一个典型的场景:应用系统连接短信中心
应用系统即可以主动通过短信中心下发消息给手机;
也可以接收短信中心转发的手机上行的消息
------解决方案--------------------
问题1:线程函数能不能再创建线程?
可以


问题2:一个进程能不能同时当客户端也当服务端?
回答行与不行没有什么意思,请问你想解决什么问题?
------解决方案--------------------
我觉得,既然问题1可以,那问题2不是必然的吗??

在进程中另开一个子线程,一个当服务端,一个当客户端。。

不知到我说的对不对
------解决方案--------------------
一个进程当然可以既是服务器,又是客户端。
自然而然的就是这样,你要想办法阻止这样反而非常麻烦。

你想,一个服务器完全有可能连接另外的服务器,如果这个另外的服务器是自己(服务器在哪里,网络编程并不关心,只提供一个地址),就是你说的情况!