udp并发服务器的原理 及网络方面的小问题帮我解释下?!
服务器(知名端口)等待一下客户的到来,当一个客户到来后,记下其IP和port,然后同理,服务器
fork一个子进程,建立一个socket再bind一个随机端口,然后建立与客户的连接,并处理该客户的请求。父进程继续循环,等待下一个客户的到来
上面这句话是我找到的资料
1 但是 我不懂的是 fock出来一个子进程 我想问的是 用线程行不行 一定要用进程吗?
2 如何 bind一个随机端口?
因为 上面那个 做法 其实 和 TCP的原理很像 所有客户端连到一个端口上 而后可以fock进程 但是也可以 创建线程来服务
udp不行吗?
3。TCP连接。 难道 客户端连上一个服务端口(例如:9000 )后 linux系统会自动在服务器端分配一个 随机的临时端口吗? 还是说就是原来(9000)那个端口 并没有分配其他的端口?
4。线程都知道是和 所在进程共享内存的 但是 fock出来的子进程 和 父进程共享了什么 ? fock出来的子进程和 父进程是否拥有相同的端口号呢???!
知道多少 回答多少 小弟 都快抓狂了 谢谢大家的帮助
------解决方案--------------------udp没有listen,是2元组, 想做并发udp服务端, 服务端每次需要主动创建socket并bind(0)选择一个端口与对应的客户端专门通信,当然服务端应该也向客户端发包以便让客户端知晓服务端的服务端口。