tcp通讯
原创
©著作权归作者所有:来自51CTO博客作者请叫我木丁西的原创作品,请联系作者获取转载授权,否则将追究法律责任
tcp通讯协议的特点:
1.tcp是基于IO流进行数据传输的,面向连接。
2.tcp进行数据传输的时候没有大小限制。
3.tcp是面向连接,通过三次握手的机制保证数据的完整性,可靠协议。
4.tcp是面向连接的,所以速度慢。
5.tcp是区分客户端与服务端的。
比如:打电话,QQ/飞Q的文件传送,电影下载。。。。
tcp协议下的Socket:
Socket(客户端类),tcp的客户端一旦启动马上要与服务端进行连接。
ServerSocket(服务端类)
tcp客户端使用步骤:
1.建立tcp客户端服务。
2.获取到对应的流对象
3.写出或读取数据
4.关闭资源
tcp服务端使用步骤:
1.建立tcp服务端服务。
2.接收客户端的连接产生一个Socket
3.获取对应的流对象读取或者写出数据
4.关闭资源
tcp客户端
package com.cn.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* Author:Liu Zhiyong(QQ:1012421396)
* Version:Version_1
* Date:2016年8月6日14:44:14
* Desc:
tcp通讯协议的特点:
1.tcp是基于IO流进行数据传输的,面向连接。
2.tcp进行数据传输的时候没有大小限制。
3.tcp是面向连接,通过三次握手的机制保证数据的完整性,可靠协议。
4.tcp是面向连接的,所以速度慢。
5.tcp是区分客户端与服务端的。
比如:打电话,QQ/飞Q的文件传送,电影下载。。。。
tcp协议下的Socket:
Socket(客户端类),tcp的客户端一旦启动马上要与服务端进行连接。
ServerSocket(服务端类)
tcp客户端使用步骤:
1.建立tcp客户端服务。
2.获取到对应的流对象
3.写出或读取数据
4.关闭资源
*/
/**
* tcp客户端
* @author zhiyong
*
*/
public class Demo1_Client {
public static void main(String[] args) throws IOException {
//创建tcp服务
Socket socket = new Socket(InetAddress.getLocalHost(), 9090);
//获取Socket的输出流对象
OutputStream outputStream = socket.getOutputStream();
//利用输出流对象把数据写出即可
outputStream.write("服务端你好啊,我是客户端哒。".getBytes());
//获取socket的输入流对象,读取服务端回送的数据
InputStream inputStream = socket.getInputStream();
byte[] buf = new byte[1024];
int length = inputStream.read(buf);
// while((length = inputStream.read(buf)) != -1){
System.out.println(new String(buf, 0, length, "gbk"));
// }
//关闭资源
socket.close();
}
}
tcp服务端
package com.cn.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* Author:Liu Zhiyong(QQ:1012421396)
* Version:Version_1
* Date:2016年8月6日15:14:30
* Desc:
tcp服务端使用步骤:
1.建立tcp服务端服务。
2.接收客户端的连接产生一个Socket
3.获取对应的流对象读取或者写出数据
4.关闭资源
*/
/**
* tcp服务端
* @author zhiyong
*
*/
public class Demo1_Server {
public static void main(String[] args) throws IOException {
//建立tcp的服务端,并且监听一个端口
ServerSocket serverSocket = new ServerSocket(9090);
//接收客户端的连接
Socket socket = serverSocket.accept();// accept() 接收客户端的连接,该方法是一个阻塞型的的方法。没有客户端与其连接时,会一直等待下去。
//获取输入流对象,读取客户端发送的内容
InputStream inputStream = socket.getInputStream();
byte[] buf = new byte[1024];
int length = inputStream.read(buf);
// while((length = inputStream.read(buf)) != -1){
System.out.println("服务端接收:" + new String(buf, 0, length, "utf-8"));
// }
//获取socket输出流对象,向客户端发送数据
OutputStream outputStream = socket.getOutputStream();
outputStream.write("我是服务端,我收到你的消息哒。。。。".getBytes());
//关闭资源
serverSocket.close();
}
}