博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上机题目(0基础)- Java网络操作-Socket实现client和server端通信(Java)
阅读量:6368 次
发布时间:2019-06-23

本文共 1849 字,大约阅读时间需要 6 分钟。

    非常多刚開始学习的人对于java网络通信不太熟悉。对相关概念也不太明确,这里我们主要实现一下socket通信,socket通信在java中应用十分广泛。比如QQ和MSN等都是基于socket通信的,什么是socket?简单理解socket就是ip+端口。通过实例来观察一下最简单的socket通信是怎么实现的吧。

    首先实现server端代码:

package com.socket.demo;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;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();			bufferedReader.close();			inputStream.close();			socket.close();			serverSocket.close();			}catch(Exception exception){							}	}	}
然后实现client代码:

package com.socket.demo;import java.io.IOException;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();			//关闭资源			printWriter.close();			outputStream.close();			socket.close();		} catch (UnknownHostException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		}	}			}
结构如图:

然后我们首先执行server端:(顺序不能颠倒哦)

然后启动client:

这里能够看到,client将信息发送到server端,server端接收到信息后将信息在控制台进行输出。

好了,最简单的一个socket通信就实现了。

总结一下例如以下图:

喜欢的朋友请关注我。

转载地址:http://lwrma.baihongyu.com/

你可能感兴趣的文章
【Spring】定时任务详解实例-@Scheduled
查看>>
先有的资源,能看的速度看,不能看的,抽时间看。说不定那天就真的打不开了(转)...
查看>>
[20161028]rman与filesperset=1.txt
查看>>
哪些领域适合开发微信小程序
查看>>
谁说数据库防火墙风险大?可能你还不知道应用关联防护
查看>>
ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求
查看>>
怎样做一个企业?尤其是在这个互联网时代
查看>>
DVNA:Node.js打造的开源攻防平台
查看>>
17个案例带你3分钟搞定Linux正则表达式
查看>>
Java 8 比较器:如何对 List 排序
查看>>
苹果是否步思科后尘折戟中国
查看>>
漏洞预警!微软曝光震网三代漏洞,隔离网面临重大危机
查看>>
协鑫集成第二批1000台E-KwBe光伏储能设备即将启运澳洲
查看>>
爱立信物联网广州路演
查看>>
云计算企业业绩分化明显 9家上市公司中期预喜
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一3.5 可能发生的网络配置问题
查看>>
SK电讯发布Q2财报 净利润同比下降26.9%
查看>>
零售品牌如何驾驭大数据主导商业决策?
查看>>
经济模式UPS在数据中心的应用(上)
查看>>
Intel首款32核Xeon E5 v5跑分曝光:史上最强
查看>>