C++一个客户端与多个服务器通信

C++一个客户端与多个服务器通信,第1张

客户端之间的通讯有两个办法。

1 服务器中转

2 服务器上注册后,客户端之间直接通信

对于第一种方法,大多比较简单。查一下socket的文章,还有大把现成的代码给你看。

第二个方法就稍微复杂一些。

但原理都一样。客户端A,链接服务器后,地址信息就保存到了服务器上。除了保持与服务器的通信外。另外开启一个 Socket,绑定到另一个端口,并且一直监听此端口。

客户端B连接服务器,从服务器上获取客户端A的地址信息。把客户端A当成服务器,连接A。

(1) 连接 当客户在浏览器上键入或单击一个URL时,客户程序就在网络上搜索定位正确的服务器,并与其连接。

(2) 请求 在连接后,客户程序向服务器发出一个请求,要求服务器向自己发送指定的信息。

(3) 响应 服务器收到请求,就向客户端传回所需要的文件。

(4)关闭 服务器发出数据后,就断开与客户端的连接,以便接受其他客户的连接。

你可以在每个用户连上服务器端时,都发送一个消息,就是用4个字节表示是用户的ID,并将与用户通信的socket,用一个HashMap存储起来,而不是用LinkList。

后面如果A发送消息给C,就把A的前四个字节(即ID)取出来,在HashMap中找到与C通信的socket,然后把消息通过socket发送出去····

这部分代码应该很容易实现的,Socket通信这东西,理清了思路就很好弄了~~

1一楼bibofun同学说的很对,内网的计算机可以直接通信。

2这两台电脑中的一台,您或许需要用作服务器使用,那么最好设置为一个固定的内网IP,比如1921680200,如果服务器需要访问外网,那么网关也是要设置的,还有DNS也需要设置,否则,仅需要设置IP即可。

3客户端是另一台电脑了,如果内网可以自动获得IP,那就不需要设置这台电脑的IP。

4查看ip地址是非常必要的,通过"开始"->"运行"->"CMD"->"ipconfig",分别在服务器与客户端上查看ip,务必需要二者的IP均在一个段中,两者才可通信。

5当然是测试是否连通,ping对方的ip地址就可以判断。比如,客户端ping服务器,在命令窗口输入:ping 1921680200

1最简单的方法:

public static String reverse1(String str)

{

   return new StringBuffer(str)reverse()toString();

}

2最常用的方法:

public static String reverse3(String s)

 { 

   char[] array = stoCharArray(); 

  String reverse = "";  //注意这是空串,不是null

   for (int i = arraylength - 1; i >= 0; i--) 

   reverse += array[i]; 

   return reverse; 

  } 

3常用方法的变形:

 public static String reverse2(String s)

  int length = slength(); 

   String reverse = "";  //注意这是空串,不是null

   for (int i = 0; i < length; i++) 

    reverse = scharAt(i) + reverse;//在字符串前面连接,  而非常见的后面

   return reverse; 

  } 

4C语言中常用的方法:

 public static String reverse5(String orig)

  char[] s = origtoCharArray(); 

  int n = slength - 1; 

  int halfLength = n / 2; 

  for (int i = 0; i <= halfLength; i++) { 

    char temp = s[i]; 

   s[i] = s[n - i]; 

   s[n - i] = temp; 

   } 

   return new String(s);  //知道  char数组和String相互转化

  }

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C++一个客户端与多个服务器通信

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情