通信阶段v2 小总结

第二次翻看通信的书,感慨颇深,之前有一些不清楚的现在也大都明白其所以然,那么下面就谈一下我对于通信的一些小的总结和看法吧。
首先所谓通信,就是服务器与一个或若干个客户端之间的信息传递。对于java来说,由
ServerSocket 创建的对象就是一个服务器端,语句如下:ServerSocket server=new ServerSocket(9090);//9090为该服务器的端口号,该端口号对于计算机来说是唯一的,就像是你有一部手机,但是如果你想给朋友打电话,你必须要有一个电话号码。而此时的端口号就相当于电话号码,这样的话我们就不难理解,为什么端口号不能被其他的程序占用的原因了。
创建好服务器之后,就需要有一个信息管道,用来接受或发送信息,在客户a端与服务器之间。那么是怎么实现的呢?很简单,代码如下:Socket soc=Server.accept阻塞();可能你会想:为什么要用服务器server调用accept()方法来创建呢?我个人的看法是因为对于一个服务器通信,必须有其自身的信息管道,从而传输信息的时候就不会被其他服务器所截取。而accept方法调用后,该语句会暂时停留在此处,简单的认为是阻塞状态,而当有客户端连接上服务器时,该方法会执行,并跳转到下一行语句。
当客户端连接上服务器之后,怎么来通信呢?这是一个关键的地方,之前我们说过,信息管道用来接收或发送消息,所以我们需要对信息管道进行处理,得到其输入输出流(输入输出是相对于服务器来说的) 代码如下:OutputStream out=scc.getOutputStream();//得到输出流 InputStream ips=scc.getInputStreaqm();
服务器端的输入流通过read()方法来读取客户端发送过来的消息
服务器端的输出流通过write()方法来像客户端发送消息

那么下面说一下客户端:
首先需要创建客户端对象 代码:Socket client=new Socket(ip,port);
在这句代码里,ip表示服务器此时的ip地址,就像是你要找一个人,得知道他住在哪里。。而port表示服务器的端口号,即你不但要知道他住在哪,还得知道他叫什么,这就是port的作用。
通过该方法连接上服务器之后,就可以实现服务器与客户端之间的通信了,但是要注意的一点是就是服务器需要用线程来处理,Socket soc=Server.accept阻塞();这一句代码需要放到线程里面去执行,这样一个服务器就可以跟多个客户端相连接。

还要注意的一点就是服务器与客户机相互读取消息的时候可能会发生消息阻塞。解决方法也是将读取消息的方法在线程里执行。

只要把这些都理解透彻之后,你好玩的通信项目就可以做出来了。。。希望大家能够多多给我建议哦
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值