小弟我最近在做一个小的聊天程序
小弟我在网上看到有人这样做:
服务器端:
一个text为输入主机分配的本地端口号,如;8000,8001
一个text为接受到客户机的显示消息内容
一个text为服务器要发送的消息
客户机端:
一个text为服务器分配的端口号,如:8000
一个text为服务器的主机名或IP地址
一个text为客户机向服务器发送的消息内容
一个text为接受到服务器的显示消息内容
双方建立连接后可以通信
现在有一下几个问题要问
1。服务器分配了端口号,而客户机没有,只是连接服务器的端口号,这样也能进行双向通信??
2。如果同时有多个用户,服务器端如何区分是哪个用户呢,除了分配不同的端口号外,能不能也向客户机那样通过IP地址来判断连接??代码该怎么写???
3。能不能在程序关闭后记录以前的设置??不要每次连接前,在一一输入端口号啊?

解决方案 »

  1.   

    1.客户机不用你分配,Windows会自动分配的
    2.服务器可以维护一个数组实现不用IP端口号和用户的唯一对应关系
    3.当然可以,只要你服务器IP是固定的,写进一个文件保存即可
      

  2.   

    1.客户端连接到服务端的特定端口后,客户端winsock会得到一个随机分配的未使用的端口;
    2.服务器端用winsock数组,数组中每个成员对应一个客户端,用这个数组的index值来区分即可;
    3.端口号可以保存,如果服务器IP地址是动态的,那么保存也是没有意义的。
      

  3.   

    vb 的
    msdn中有个tcp多用户连接的 代码 那个就可以 实现你的 功能