上一节实现了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)的更多相关文章

  1. 上机题目(0基础)- Java网络操作-Socket实现client和server端通信(Java)

    非常多刚開始学习的人对于java网络通信不太熟悉.对相关概念也不太明确,这里我们主要实现一下socket通信,socket通信在java中应用十分广泛.比如QQ和MSN等都是基于socket通信的,什 ...

  2. Socket实现client和server端通信(Java)(转)

    转自: https://blog.csdn.net/yayun0516/article/details/50819147 https://www.jianshu.com/p/2d4f223f1462 ...

  3. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

  4. 上机题目(0基础)- Java网络操作-打印网页(Java)

    打印一个网页,熟悉Java网络编程: import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...

  5. java网络编程socket解析

    转载:http://www.blogjava.net/landon/archive/2013/07/02/401137.html Java网络编程精解笔记2:Socket详解 Socket用法详解 在 ...

  6. java网络编程Socket通信详解

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

  7. java 网络编程Socket

    TCP: 通过TCP协议传输,得到的是一个顺序的无差错的数据流. 发送方和接收方的成对的两个socket之间必须建立连接, 以便在TCP协议的基础上进行通信,当一个socket(通常都是server ...

  8. JAVA网络编程Socket常见问题 【长连接专题】

    一. 网络程序运行过程中的常见异常及处理 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发生在服务器端进行new ...

  9. day05 Java网络编程socket 与多线程

    java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...

随机推荐

  1. POJ 3974 Palindrome | 马拉车模板

    给一个字符串,求最长回文字串有多长 #include<cstdio> #include<algorithm> #include<cstring> #define N ...

  2. 叶落归根(hometown)

    叶落归根(hometown) 题目描述 叶落归根——树叶从树根生发出来,凋落后最终还是回到树根.比喻事物总有一定的归宿.接下来是题目. 给定一个n个点的有向图G(点的编号为1~n),一开始落叶(仅作为 ...

  3. 使用rssh创建一个安全的文件服务器

    使用rssh创建一个安全的文件服务器 目前有这样一个需求,公司需要一台linux服务器作为文件服务器,但是基于安全性考虑,我不想使用ftp或者samba,但又必须允许用户上传文件.怎么办呢? 因为是l ...

  4. js剪贴板操作

    这是一个很有意思的地方,很多不了解的人或者初级的js编程者会觉得很不可思议,js都那么强大了,访问剪贴板一个粘贴复制,大概就是一行命令的事情,但是事实如此,js对于访问本地计算机的剪贴板的支持其实是十 ...

  5. 结构型设计模式之享元模式(Flyweight)

    结构 意图 运用共享技术有效地支持大量细粒度的对象. 适用性 一个应用程序使用了大量的对象. 完全由于使用大量的对象,造成很大的存储开销. 对象的大多数状态都可变为外部状态. 如果删除对象的外部状态, ...

  6. 通过OpenGL ES在iOS平台实践增强现实

    http://www.cnblogs.com/elvisyzhao/p/3398250.html 本文采用OpenGL ES 1固定渲染管线实现,目标为在设备拍摄到的现实世界中,绘制世界坐标轴,并根据 ...

  7. vmware上搭建kickstart 网络安装centos6.2的过程

    前言 什么是PXE? PXE(Pre-boot Execution Environment,预启动执行环境)协议使计算机可以通过网络启动.协议分client和server. PXE client 在网 ...

  8. Linux中断(interrupt)子系统之五:软件中断(softIRQ)【转】

    转自:http://blog.csdn.net/droidphone/article/details/7518428 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 软件中 ...

  9. nginx 根据POST GET方法跳转

    location ~ /server/ {    proxy_pass_header   Server;    proxy_set_header Host $http_host;    proxy_r ...

  10. postman的使用(转载)

    Postman介绍 Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件.其主要功能包括: 模拟各种HTTP requests 从常用的 ...