客户端:
package net.tcp;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/*
* TCP客户端建立过程:
* 1.创建TCP客户端Socket服务,使用Socket对象,明确目标主机的IP地址、端口号
* 2.如果连接建立成功,说明数据传输通道已经建立
* 3.使用输出流,将数据写出
* 4.关闭资源
*/
public class TCPClient {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
//1.创建TCP客户端Socket服务,使用Socket对象,明确目标主机的IP地址、端口号
Socket s=new Socket("192.168.166.193",10003);
//2.使用输出流,将数据写出
OutputStream os=s.getOutputStream();
os.write("tcp传输:小弟!".getBytes());
//3.关闭资源
s.close();
}
}
服务器端:
package net.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 创建TCP服务器端的思路:
* 1.建立服务器端的服务,使用ServerSocket对象
* 2.服务器端必须要对外提供一个端口,否则客户端无法连接
* 3.获取连接过来的客户端对象,使用accept()
* 4.通过客户端对象获取Socket流读取客户端发来的数据
* 5.关闭资源。包括服务器端和客户端
*/
public class TCPSever {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//1.建立服务器端的服务,使用SocketSever对象
ServerSocket ss=new ServerSocket(10003);
//2.获取连接过来的客户端对象,使用accept()
Socket s=ss.accept();
String ip=s.getInetAddress().getHostAddress();
//3.通过客户端对象获取Socket流读取客户端发来的数据
InputStream is=s.getInputStream();
byte [] buf=new byte [1024]; //用来存储接收的数据
int len=is.read(buf);
String text=new String(buf,0,len);
System.out.println(ip+"server:"+text);
s.close();
ss.close();
}
}