Socket通信实现步骤
2024-10-08 11:55:04
public class Server { public static void main(String[] args) { try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器启动中....");
//accept()是在一个套接口接受的一个连接。accept()是c语言中网络编程的重要的函数,
//本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。
Socket socket = serverSocket.accept();//获取Socket
InputStream is = socket.getInputStream();//获取输入流
InputStreamReader isr = new InputStreamReader(is);//InputStreamReader类是从字节流到字符流的桥接器
BufferedReader br = new BufferedReader(isr);//缓冲流
System.out.println("客户端数据" + br.readLine());
String info = null;
while((info = br.readLine()) != null){
System.out.println("客户端传递的信息" + info);
}
socket.shutdownInput();//shutdownInput和shutdownOutput只关闭相应的输入、输出流,不会同时关闭网络连接的功能。
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("欢迎您!!");
pw.flush();//flush()是清空,而不是刷新 将缓冲区的内容输出 pw.close();
os.close();
br.close();
isr.close();
is.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} } }
public class Client { public static void main(String[] args) {
try {
Socket socket = new Socket("localhost", 8888);
System.out.println("客户端启动中....");
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.write("admin");
pw.flush();
socket.shutdownOutput(); InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info = br.readLine()) != null){
System.out.println("服务端返回的信息" + info);
} os.close();
pw.close();
is.close();
br.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
} }
最新文章
- android 很多牛叉布局github地址(转)
- [bzoj3694]最短路
- (整理)IIS 7 503 ";service unavailable"; errors
- 关于yaha中文分词(将中文分词后,结合TfidfVectorizer变成向量)
- SpringMVC Controller 返回值的可选类型
- datareader几种用法总结
- android安卓最新快捷环境搭建(转)
- hdu1022 Train Problem I
- Learning Cocos2d-x for WP8(7)——让Sprite动起来
- Unity3d场景漫游---iTween实现
- 基于阿里云的JavaEE系统框架介绍
- BZOJ4503 两个串 多项式 FFT
- 2018-2019-1 20189210 《LInux内核原理与分析》第四周作业
- 排序算法之冒泡排序的思想以及Java实现
- Oracle DB 使用RMAN恢复目录
- Java设计模式学习记录-解释器模式
- SQL Server如何更改系统用户dbo的所属账号
- 【连载6】二手电商APP的导购功能与关系链机制分析
- Scala中的柯里化
- RNA-seq流程需要进化啦!