网络编程之TCP协议学习
来源:互联网 发布:游戏服装设计软件 编辑:程序博客网 时间:2024/06/07 05:24
/**
* 1.tcp传输:客户端对应的对象是socket,服务端对应的是ServerSocket
* 2.客户端:通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机,
* 因为tcp是面向连接的,所以在建立socket服务时,就要在有服务端的存在,并连接成功
* @author qiuzhiwen
*
*/
class Client implements Runnable{
private Socket s;
public Client(Socket s){
this.s=s;
}
@Override
public void run() {
try {
//获取键盘输入流
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//发送数据,获取socket流中的输出流
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//读入服务端返回的数据信息
BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
if("over".equals(line))
break;
out.write(line);
out.newLine();
out.flush();
System.out.println("server:"+bufin.readLine());
}
br.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 服务端:
* 1.建立服务端的socket--serverSocket,并监听一个端口
* 2.获取连接过来的客服端对象
* 通过Serversocket的accept方法,没有连接就会等--阻塞的
* 3.客服端发过来数据,获取数据
* @author qiuzhiwen
*
*/
public class TCPDemo {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(10005);
new Thread(new Client(new Socket("127.0.0.1", 10005))).start();
Socket s=ss.accept();//获取socket对象
System.out.println(s.getInetAddress().getHostAddress()+"connected.....");
BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufout=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line="";
while((bufin.readLine())!=null){
bufout.write(line.toUpperCase());
bufout.newLine();
bufout.flush();
}
s.close();//关闭客服端
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
* 1.tcp传输:客户端对应的对象是socket,服务端对应的是ServerSocket
* 2.客户端:通过查阅socket对象,发现在该对象建立时,就可以去连接指定主机,
* 因为tcp是面向连接的,所以在建立socket服务时,就要在有服务端的存在,并连接成功
* @author qiuzhiwen
*
*/
class Client implements Runnable{
private Socket s;
public Client(Socket s){
this.s=s;
}
@Override
public void run() {
try {
//获取键盘输入流
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//发送数据,获取socket流中的输出流
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//读入服务端返回的数据信息
BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));
String line=null;
while((line=br.readLine())!=null){
if("over".equals(line))
break;
out.write(line);
out.newLine();
out.flush();
System.out.println("server:"+bufin.readLine());
}
br.close();
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 服务端:
* 1.建立服务端的socket--serverSocket,并监听一个端口
* 2.获取连接过来的客服端对象
* 通过Serversocket的accept方法,没有连接就会等--阻塞的
* 3.客服端发过来数据,获取数据
* @author qiuzhiwen
*
*/
public class TCPDemo {
public static void main(String[] args) {
try {
ServerSocket ss=new ServerSocket(10005);
new Thread(new Client(new Socket("127.0.0.1", 10005))).start();
Socket s=ss.accept();//获取socket对象
System.out.println(s.getInetAddress().getHostAddress()+"connected.....");
BufferedReader bufin=new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bufout=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line="";
while((bufin.readLine())!=null){
bufout.write(line.toUpperCase());
bufout.newLine();
bufout.flush();
}
s.close();//关闭客服端
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
阅读全文
0 0
- 网络编程之TCP协议学习
- 网络编程之TCP协议
- 网络编程之TCP协议
- 网络编程之TCP协议
- Java中网络编程之TCP协议
- 网络编程之TCP协议整理
- Linux网络编程之TCP协议
- 网络编程3之TCP/IP协议
- java网络编程之UDP、TCP协议
- 网络编程--TCP协议
- 网络编程TCP协议
- 网络编程TCP协议
- 网络编程之基于TCP协议的网络编程
- 【JavaSE学习笔记】网络编程_UDP协议,TCP协议
- 网络编程之UDP协议和TCP协议
- java 网络编程三要素之协议(TCP协议):
- Java网络编程深入之TCP协议编程
- Linux程序设计学习笔记----Socket网络编程基础之TCP/IP协议簇
- Java网络通信学习(一)- Java Socket 编程
- Centos7下yum安装MySQL5.7
- 面试题5————sql优化
- 简单自定义Toast,实现好看的消息提示框
- 华为2016机试
- 网络编程之TCP协议学习
- 经典面试题(1)
- yii2框架实现引导安装功能
- 机器人技术(5)AtdRobot无线手柄控制教程
- java数组用到的java类库中的方法
- oracle多个实例创建
- chromium源代码结构
- Linux下安装tar.gz类型的jdk,并配置环境变量
- 安全测试