上机题目(0基础)- Java网络操作-Socket实现client和server端通信二(Java)
上一节实现了client像server端发送请求。本节将实现server端向client回传信息。实现原理非常easy,在原来的基础上。在server端实现输出流,在client实现输入流就可以,详细代码例如以下:
server端:
package com.socket.demo; import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket; public class Server {
public static void main(String[] args) {
try{
ServerSocket serverSocket=new ServerSocket(8888);
System.out.println("----------------服务端执行。開始监听请求----------------");
Socket socket=serverSocket.accept();//開始监听
InputStream inputStream=socket.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
//获取请求内容
String info;
while ((info=bufferedReader.readLine())!=null) {
System.out.println("我是server端。client请求为:"+info); } socket.shutdownInput();
//server端向client回传信息
OutputStream outputStream=socket.getOutputStream();
PrintWriter printWriter=new PrintWriter(outputStream);
printWriter.write("client您好。我已经接受到你的信息");
printWriter.flush();
//关闭资源
printWriter.close();
outputStream.close();
bufferedReader.close();
inputStream.close();
socket.close();
serverSocket.close();
}catch(Exception exception){ } } }
client:
package com.socket.demo; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException; public class Client {
public static void main(String[] args) {
try {
//发送到8888端口
Socket socket=new Socket("127.0.0.1", 8888);
//输出流
OutputStream outputStream=socket.getOutputStream();
PrintWriter printWriter=new PrintWriter(outputStream);
printWriter.write("server端你好,我是client。 ");
printWriter.flush();
socket.shutdownOutput();//这个不能少。! ! ! !!!。!!。! ! !
//接受server端回传的信息
InputStream inputStream=socket.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String info;
while ((info=bufferedReader.readLine())!=null) {
System.out.println("我是client。server端返回::"+info); }
//关闭资源
bufferedReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} }
执行实比例如以下:
server控制台输出:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8YAAAD7CAYAAAConY0vAAAgAElEQVR4AeydCXgV1dnH/zd72MMiCiIguQEioHWF4L603qA2Lo3aVvk+rYlaNaFtauvnUit1o19JWqsNalvQVsW2xk+5V2vdKptW6wLGmhsFREVEdgjZ53veM8udmTt3SUhCIP/7PMmcOct73vM7586dd95zzvjWfd6gwfY57JBs66ypqckK94bA7t27o9Tw+XxWXHt7O+QvJSVF/VkJtoCmOZprS2GQBEiABEiABEiABEiABEigNxGQe333Pb7Eef01NDQgIyNjr9XPysrqsIzMzEyrzCcb9lhhCdjtqy+//NKRJifSFtNGSU9PR2pqKtra2tDS0hKVVyLS0tKwePFizDrnXHy1aTP27GmEprVH5e3fvz+ys3Xbbs+ePTHDXjaWCGtv15Qew4bn4PWVK3DBBRdE1dEbIoSfMBEbUMZKa2ur5/iQfDJGRowYYalt76s0K/YACMQziA+A5rEJJEACJEACJEACJEACJNDnCPSle3wxhmMZxO6Ob25qxo4dO9He3oZ2D+df4944OTUoY10Mdq092uh267Kvz8UY3tvPfmUYy5dibz/ypIAfEiABEiABEiABEiABEiCB/ZOA3M/b//anVog3uDMf06MsZcUmGj58OLZs2YwhQwYrr66Xx7gz9XiV2b27AeIR7wpbzEt+d8TZx0ey9l+UYSzuZLu7vzsU7azMrugM+6DqrB4sRwIkQAIkQAIkQAIkQAIk0LUEkjVgpFbT8DHDXatJ56XZp+aaUuz2lZc9I23piI0i+XNzc7FmzRps27bNrKbbjjI9feTIkYp5t1WSpOCuHCPuvooyjJPUaZ9k64o1zx0ZdPukkayUBEiABEiABEiABEiABPoggY4YPfsrnq6Y8ittHz16tPrrSQ7Nzc0dMuC7Q7fuHCM+9+ZbZgN6q9fY1I9HEiABEiABEiABEiABEiABEugtBNweSLdetK/cRPbduVdfxVy065V536nOmkmABEiABEiABEiABEiABEigdxJIxnZKJk/vbN2BpVWsfojpMbY3n0837DQYJgESIAESIAESIAESIAESIAEglpGViA3tq0SEuj49UV8lZRh3vVqUSAIkQAIkQAIkQAIkQAIkQAIkQAK9g0DMqdS9Qz1qQQIkQAIkQAIkQAIkQAIkQAIkQALdS4CGcffypXQSIAESIAESIAESIAESIAESIIFeToCGcS/vIKpHAiRAAiRAAiRAAiRAAiRAAiTQvQSSeo/x+7W13asFpZMACZAACZAACZAACZAACZAACZBANxE4Ij8/ruS4hrFpEB/qz40rhIkkQAIHJoGphw1G6MW3VOMCZxxzYDayF7TKZMxrbS/oDKpAAiRAAiRAAiRwQBIwbdtYBnLMXamlIG/SDsgxwUaRQFIETKOYBnFSuLokkxjIvO52CUoKIQESIAESIAESIAFPAp+G6+FlHHsaxjSKPRkykgT6FAG5aNAo7vkup3Hc88xZIwmQAAnsjwRee/nvWPHay9j81aa9Vn/Y8BGYcdJpOOm0rytZ3Sl7r5WlABLoAgJexnHcqdRdUCdFkAAJ7IcExFv8aXg/VJwqkwAJkAAJ7LcEFj54H66/YQ527GnZb9vQU4q/+uJzWPrS3zEpfwqOPGrvlzrt2rkDf3/2KbS3t6smdJfsU844W8lnX/fUSGE9HSEQZRiLt3h0bi40rSNimJcESOBAIiBeS3qL902PCnfhL9dhfkiABA48Aj7fgdGmrZs34qVn/4yWpkacErgEh4wZbzVsTd1qLPvHUxg0ZBjO/OZ30a//ICutKwKNdb8GYnHU2pEx9rtIyRzeFVV1qYx4evtSMpB+6EVJ673ytVeQP3Uahg4/CAMGRvhqmgatvR3tmobU1FT4khxwBx0yWrVV5Mqnu2SbhnGXgqUwRaC9cRNSskaQhotALJtW7rPE7rVPqY4yjF2y1OmqF2/
posted on
2017-07-27 19:30
cynchanpin
阅读(...)
评论(...)
编辑
收藏
上机题目(0基础)- Java网络操作-Socket实现client和server端通信二(Java)的更多相关文章
- 上机题目(0基础)- Java网络操作-Socket实现client和server端通信(Java)
非常多刚開始学习的人对于java网络通信不太熟悉.对相关概念也不太明确,这里我们主要实现一下socket通信,socket通信在java中应用十分广泛.比如QQ和MSN等都是基于socket通信的,什 ...
- Socket实现client和server端通信(Java)(转)
转自: https://blog.csdn.net/yayun0516/article/details/50819147 https://www.jianshu.com/p/2d4f223f1462 ...
- java网络编程socket\server\TCP笔记(转)
java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04| 分类: Socket | 标签:java |举报|字号 订阅 1 TCP的开销 a ...
- 上机题目(0基础)- Java网络操作-打印网页(Java)
打印一个网页,熟悉Java网络编程: import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- java网络编程socket解析
转载:http://www.blogjava.net/landon/archive/2013/07/02/401137.html Java网络编程精解笔记2:Socket详解 Socket用法详解 在 ...
- java网络编程Socket通信详解
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- java 网络编程Socket
TCP: 通过TCP协议传输,得到的是一个顺序的无差错的数据流. 发送方和接收方的成对的两个socket之间必须建立连接, 以便在TCP协议的基础上进行通信,当一个socket(通常都是server ...
- JAVA网络编程Socket常见问题 【长连接专题】
一. 网络程序运行过程中的常见异常及处理 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发生在服务器端进行new ...
- day05 Java网络编程socket 与多线程
java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...
随机推荐
- role management
role management https://panjiachen.github.io/vue-element-admin/#/permission/page
- H3C交换机端口链路聚合
H3C交换机端口链路聚合 以太网链路聚合 -- 以太网链路聚合配置命令 -- lacp system-prioritylacp system-priority命令用来配置系统的LACP优先级.undo ...
- mysql 导入
1.默认情况下:MySQL导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,可修改php.ini参数调整: 在php.ini中修改相关参数: 影响MySQL导入文件大小的参数有三个: ...
- ef unitofwork 主从表更新
readonly UnitOfWork _u = new UnitOfWork(); public M Get(int id) { return _u.T_MtnContractRepository( ...
- [bzoj2726][SDOI2012]任务安排 ——斜率优化,动态规划,二分,代价提前计算
题解 本题的状态很容易设计: f[i] 为到第i个物件的最小代价. 但是方程不容易设计,因为有"后效性" 有两种方法解决: 1)倒过来设计动态规划,典型的,可以设计这样的方程: d ...
- 合唱队形(DP)
原题传送门 这道题目就是裸的DP题, 我们所需要得到的是一个倒V形的数列 即一个上升子序列与下降子序列的合体.. 所以我们只需要做一遍从1到n的最长上升子序列和从n到1的最长上升子序列即可 时间复杂度 ...
- Dreamweaver安装须知
1.断网安装,否则让你登录邮箱什么的,安装完成后退出,先不要运行: 2.将破解的文件直接复制到安装的文件的地方覆盖:(将32文件夹下的amtlib.dll复制到安装完毕的dw_cs6下,覆盖原来的am ...
- hdu 1856(hash+启发式并查集)
More is better Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others) ...
- Openstack ceilometer
https://www.cnblogs.com/liguangsunls/p/6879879.html
- UVA 11149.Power of Matrix-矩阵快速幂倍增
Power of Matrix UVA - 11149 代码: #include <cstdio> #include <cstring> #include < ...