socket网络编程?

xialiangdancer 2012-04-13 09:00:12
由于socket服务器肯定需要同时接受多个客户端连接,在服务器是不是需要为每个客户端都定义一个新的socket?每次accept的时候都返回一个不同的套接字,以便区分是哪个客户端连接成功了?这样的话,就可以向具体的某个客户端发送数据,请问是不是这样的?如果不是,请问怎么解决这种情况?如果能提供一点代码的话就更好了,小弟非常感谢!因为我是初学者,希望大家理解~~谢谢!
...全文
226 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfasri 2012-04-19
  • 打赏
  • 举报
回复
用IOCP是可以接受过万个连接的. 效率也很高. 假如懒得搞服务器集群, 可以试试.
draracle 2012-04-16
  • 打赏
  • 举报
回复
一个客户端对应一个套接字。
xialiangdancer 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

是可以在主线程里,开线程监听和处理的,这样是可以接受多个客户端连接,可以区分客户端的,套接字还是要对应存在的。
[/Quote]
也就是说,还是要定义多个套接字了?
xialiangdancer 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

一个游戏数以千、万计,如果每个客户端一个,服务器会不会压力太大,导致崩溃?
[/Quote]
我也有这个疑问,套接字太多了,不知道能不能用其他更好的方法解决,我看到有些例子是用的线程控制,把accept放在线程函数里面,不知道这样能不能接受多个客户端连接,能不能区分客户端
sunmaxwell 2012-04-15
  • 打赏
  • 举报
回复
是可以在主线程里,开线程监听和处理的,这样是可以接受多个客户端连接,可以区分客户端的,套接字还是要对应存在的。
向立天 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
一个游戏数以千、万计,如果每个客户端一个,服务器会不会压力太大,导致崩溃?
[/Quote]如果压力过大会考虑分布式控制
用多台服务器处理
也就是服务器集群
而且现在现在的服务器集群都是虚拟机集群
以后会是云的时代了
stevenuserregister 2012-04-14
  • 打赏
  • 举报
回复
一个游戏数以千、万计,如果每个客户端一个,服务器会不会压力太大,导致崩溃?
xialiangdancer 2012-04-14
  • 打赏
  • 举报
回复
如果大家还有新的看法,请多多指导和交流,谢谢
xialiangdancer 2012-04-14
  • 打赏
  • 举报
回复
谢谢楼上的几位!
向立天 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 fishion 的回复:

就是这样的,你的理解基本无误了

那请问楼上怎么写代码呢?嘿嘿,这个我不太会,你能不能稍微给点代码?稍微一点就行,谢谢咯
[/Quote]
一个一个你会处理么?
多的也一样
只是socket要用数组维护
小小游戏迷 2012-04-13
  • 打赏
  • 举报
回复
我也是新手 你的这个问题 我貌似刚刚解决
定义一个SOCKET的数组 TcpCli[100] 和sockaddr_in的数组 Addr_Cli[100]
while(1)
{
TcpCli[n]=accept(TcpSrv,(sockaddr *)&Addr_Cli[n],&len);
n++
}
应该是这样吧 在往后我就不知道了
xialiangdancer 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fishion 的回复:]

就是这样的,你的理解基本无误了
[/Quote]
那请问楼上怎么写代码呢?嘿嘿,这个我不太会,你能不能稍微给点代码?稍微一点就行,谢谢咯
fishion 2012-04-13
  • 打赏
  • 举报
回复
就是这样的,你的理解基本无误了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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