ServerSocket和Socket
前言
用ServerSocket和Socket做了个Server、Client通信的demo,以及学习下在这个demo过程中用到java.net、java.io包下几个常用的类。
Server
import java.net.*;
import java.io.*; public class HttpServer{ public static void main(String[] args){
new HttpServer().start();
} private ServerSocket serversocket=null; public HttpServer(){
try{
serversocket=new ServerSocket(5000);//监听客户端端口5000的socket请求
System.out.println("服务器启动");
}catch(IOException e){
e.printStackTrace();
}
} public void start(){
Socket socket=null;
while(true){
try{ socket=serversocket.accept(); //接受客户端请求socket
System.out.println("address:"+socket.getInetAddress()+":"+socket.getLocalPort()); OutputStream os =socket.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
//向客户端发送一条消息
bw.write("测试服务器通信\n");
bw.flush(); }catch(IOException e){
e.printStackTrace();
System.out.println("连接断开");
}finally{
try{
if(socket !=null){
socket.close();
}
}catch(IOException e){ }
}
}
}
}
Client
import java.net.*;
import java.io.*; public class Client{ public static void main(String[] args){
Socket socket=null;
try{
socket =new Socket("127.0.0.1",5000); InputStream is =socket.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br =new BufferedReader (isr);
String mess=br.readLine(); System.out.println("mess:"+mess);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(socket !=null){
socket.close();
}
}catch(IOException e){ }
} } }
总结
java.net包内几个常用的类:
ServerSocket、
Socket、
OutputStream、InputStream、
InputStreamReader、OutputStreamWriter、
BufferedReader、BufferedWriter、
InetAddress、
ServerSocket和Socket的更多相关文章
- ServerSocket与Socket类
ServerSocket与Socket类 TCP套接字协议: TCP最主要的特征就是能够建立长时间的连接,而且能够保证数据安全的送达,但是速度比较慢.使用TCP进行连接的时候会有三次握手,之后才建立起 ...
- 详解 ServerSocket与Socket类
(请观看本人博文 -- <详解 网络编程>) 目录 ServerSocket与Socket ServerSocket 类: Socket类: ServerSocket与Socket 首先, ...
- 线程实现ServerSocket和Socket实现数据交互
定义一个MyServer类 import java.io.IOException;import java.net.ServerSocket; public class MyServer { publi ...
- 网络I/O模型--03非阻塞模式(ServerSocket与Socket的超时处理)--解除accept()、 read()方法阻塞
对于阻塞方式的一种改进是在应用程序层面上将 “一直等待 ”的状态主动打开: 这种模式下,应用程序的线程不再一直等待操作系统的 I/O状态,而是在等待一段时间后就解除阻塞.如果没有得到想要的结果,则再次 ...
- ServerSocket和Socket通信
服务器端: 1.服务器端建立通信ServerSocket对象,并设置端口号 2.服务器建立Socket接收客户端连接 3.建立IO输入流读取客户端发送的数据 4.建立IO输出流向客户端输出数据 客户端 ...
- 37.2 net-- tcp传输 ServerSocket、Socket
一.打开server端 package day35_net_网络编程.tcp传输; import java.io.IOException; import java.io.InputStream; im ...
- 使用非阻塞ServerSocketChannel、SocketChannel代替ServerSocket和Socket
http://blog.csdn.net/timliang18601860/article/details/7104485
- JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
通过TCP建立可靠通讯信道 1)为了对应TCP协议里的客户端和服务器端,Socket包提供了Socket类和ServerSocket类. 2)Socket类构造函数及相关方法 Public Socke ...
- Socket类 以及 ServerSocket类 讲解
Socket类 套接字是网络连接的端点,套接字使应用可以从网络中读取数据,可以向网络中写入数据.不同计算机上的两个应用程序可以通过连接发送或接收字节流,以此达到相互通信的目的. 为了从一个应用程序向另 ...
随机推荐
- You are using pip version 9.0.1, however version 9.0.3 is available.
1,pip不能用了,提示:You are using pip version 8.1.1, however version 9.0.1 is available.网上搜索了一箩筐的安装程序,各种安装, ...
- [MACHINE LEARNING] Can we predict voting outcomes?
1. CART Tree library(rpart)library(rpart.plot)CTree = rpart(Party ~ . -USER_ID, data = train, method ...
- Raft知识图谱
- 22.LinkedList
LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现.基于链表实现的方式使得Linked ...
- 前端vue框架 路由的安装及使用
安装: 1.cmd下输入: npm install vue-router --save //安装路由 2.npm run dev //重新启动 使用: 1.在mian.js下引入路由 import V ...
- Hadoop 综合揭秘——MapReduce 基础编程(介绍 Combine、Partitioner、WritableComparable、WritableComparator 使用方式)
前言 本文主要介绍 MapReduce 的原理及开发,讲解如何利用 Combine.Partitioner.WritableComparator等组件对数据进行排序筛选聚合分组的功能.由于文章是针对开 ...
- App设计模式纵横谈(1)
对我的文章和培训课程感兴趣的可以加我微信16230091进行关注. —————————————————————————————————— 今天聊聊我沉淀比较久的一门技术,设计模式.这里是第一篇,算是概 ...
- c# 多线程实现ping 多线程控制控件
这个备份器放在项目目录下面,每次使用就双击一下,因为便捷性,就不采用xml等等储存信息,全部在面板内做,这样可以保证一个exe就运行了. 我发现运行起来还蛮快的,唯一没有实现的是ping通的电脑如果出 ...
- Shell-2--输入输出重定向
自己写一下吧,免得又忘了,被人问到,被鄙视 0 表示标准输入, 1 表示标准输出 , 2 表示标准错误输出 一个 > 表示已覆盖的方式把命令的正确执行重定向到文件 两个 >> 表示是 ...
- vue 自学项目笔记
感觉小青推荐的学习网课, 利用vue 仿制一个去哪网, 学习的东西很多, 在食用之前,需要先确保js 和css 过关 js https://www.bilibili.com/video/av3009 ...