上机题目(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协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...
随机推荐
- LINQ to Entities 不识别方法“System int string 转换的问题
这个问题困扰了挺久,网上找了挺多方法 都太好使. 分几种情况. 1.如果查询结果 转换,那比较容易. var q = from c in db.Customers where c.Country == ...
- BZOJ 1912:[Apio2010]patrol 巡逻(树直径)
1912: [Apio2010]patrol 巡逻 Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ ...
- 【bzoj2097】[Usaco2010 Dec]Exercise 奶牛健美操 二分+贪心
题目描述 Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径. ...
- TJOI2018游记
D1T1 - 数学计算 直接用线段树/平衡树维护所有数的积即可.我思想僵化写了一个数学方法...应该是能做\(\bmod\)所有数的乘除法. 时间复杂度\(O(nlogn)\). D1T2 - 智力竞 ...
- firefox解决flash崩溃
1.地址栏输入 about:config 2.查找dom.ipc.plugins.flash.subprocess.crashreporter.enabled 更改为false
- 当表名存在 点 的时候,EntityFramework的写法
原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 需要在 Context 中,重写 DbContext 中的 OnModelCreating 方法 进行 mappi ...
- roadhogrc.mock.js配置
1.roadhogrc.mock.js const fs=require('fs'); const path=require('path'); const mockPath=path.join(__d ...
- oracle odbc 驱动安装(不安装oracle客户端)
1.下载odbc驱动 需要下载两个东西 instantclient-basiclite-nt-12.1.0.1.0.zip instantclient-odbc-nt-12.1.0.1.0.zip 由 ...
- C++ delete 两次
转载自:http://blog.csdn.net/jxluofeng/article/details/19766801 <问题>危险的代码: int* p=new int(1); de ...
- 掌握 Linux 调试技术【转】
转自:https://www.ibm.com/developerworks/cn/linux/sdk/l-debug/index.html 您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试 ...