1是通信协议的选择,我想肯定是用UDP,因为客户端的数据量其实很小,并且没有连续性,而且很难想象为上千个客户端创建一个连接.但是用UDP的话,服务端一次只能接收一个包,数据是串行处理的,这样响应速度可能会让客户端很难忍受.
2是如果选择UDP协议的话,数据的可靠性传输的问题,我以前做的是让发送端重复发送,等待接收端回复确认消息来处理的,可是这样的话必须每次新建一个线程来处理重复发送,可是面对上千个客户端..这两个问题现在让我无法下手,请各位多提想法,或许我的从一开始就想的不对,请大家不吝赐教!!

解决方案 »

  1.   

    用完成端口、IOCP来做服务器。
      

  2.   

    建议用TCP+完成端口来做,可以认为服务器内存足够大CPU足够大。因为服务器可以扩充。
      

  3.   

    其实用UDP做也可以啊~~
    因为比较快,但是游戏服务器的逻辑底层一定要做好不同步的处理
      

  4.   

    首先我认为真正意义上的并行处理是不存在的。就象你说的在TCP中并行,我想你是说的一连接一线程模式吧,其实这种效率并不高,大量的损耗在线程上下文切换上了。 而UDP也并不是完全的串行,也可以使用LF线程池模式来处理事务。 至于可靠性,那是肯定要单独一个线程的拉,不过你也别太悲观了,1个线程足够了。