Socket通信实现步骤
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();
}
}
}
Socket通信实现步骤的更多相关文章
- java网络编程Socket通信详解
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Java Socket通信实例
一.简单的客户端与服务器一对一连接: Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Scket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关 ...
- php简单实现socket通信
socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现sock ...
- 网络编程:Http通信与Socket通信
http://note.youdao.com/share/?id=f14d304548003f65e34255d3ddf9df31&type=note 网络编程:Http通信与Socket通信 ...
- Flex通信-与Java实现Socket通信实例
Flex通信-与Java实现Socket通信实例 转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...
- Python Socket通信原理
[Python之旅]第五篇(一):Python Socket通信原理 python Socket 通信理论 socket例子 摘要: 只要和网络服务涉及的,就离不开Socket以及Socket编 ...
- 8.多线程和Socket通信
一.多线程 1.进程的概念: 进程就是应用程序的执行实例,有独立的内存空间和系统资源.当一个应用程序没有执行的时候,它就不是一个进程. 2.进行的特征: (1)动态性:动态产生动态消亡. (2)并 ...
- 简单的Socket通信
Socket简介 Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 服务端步骤: • socket:创建服务器socket ...
- UEditor编辑器和php简单的实现socket通信
一.UEditor编辑器 使用这个编辑器是需要先下载编辑器文件,记得下载的时候放入自己的网站中,既然是php中使用,自然我下载的就是php的UEditor编辑器了,然后是utf-8的 其实使用很简单, ...
随机推荐
- 使用JDBC完成分类表CRUD的操作
工具类 通过之前的案例回顾,不难发现,有很多的代码操作是重复的,比如“获取链接”和“释放资源”等,将来在增删改查中经常遇到,开发中遇到这种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用. 此 ...
- 1 dev repo organize
码云 注册 组织 创建 仓库 创建 Git版本管理工具 download from https://www.git-scm.com/download/ 克隆/下载 git clone https ...
- CentOS: 网络连接故障排除
yum不能正常动作,惯性认为是需要替换BaseURL,结果后来才发现是Gateway不知什么时候被错误设定了,memo如下. 现象表现于yum不能正常动作,确认ping的操作,发现是不能解析DNS [ ...
- springboot+mybatis报错Invalid bound statement (not found)
今天做项目时报了一个错提示说Invalid bound statement (not found),也就是说mapper接口绑定.xml文件出错了,找不到指定的sql:原因是程序没有把.xml文件编译 ...
- MongoDB - 用户名密码认证
参考 offical doc medium Mongo roles说明 https://docs.mongodb.com/manual/reference/built-in-roles/#userAd ...
- Echarts字体和线条颜色设置操作笔记
在网上偶然看到的一篇文章 感觉不错 下面是原著地址 原著地址:https://blog.csdn.net/eastmount/article/details/52823548
- spring中web.xml指定配置文件
<context-param> <param-name>contextConfigLocation</param-name> <param-value> ...
- NIO的理解
一.缓冲区(Buffer):在java NIO中负责数据的存取,实际上就是数组,用于存储不用数据类型的数据,根据数据类型不同(boolean除外),提供了相应类型的缓冲区(ByteBuffer,Cha ...
- github初使
怎么说那,全英文,对于我这个英文水平不是很高的人来说有一定的影响,但是这也促使了我学习英语,而且里面一些大牛的发表也不少的是英文版的,我感觉我在英语方面的需求,由github来提升了,早就注册好了账号 ...
- oracle查询表统计行数与注释
SELECT TABLE_NAME,NUM_ROWS,(select COMMENTS from user_tab_comments WHERE TABLE_NAME=C.TABLE_NAME) FR ...