客户端:
package com.franky.net.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* TCP客户端
* @author Administrator
*
*/
public class TCPClient {
public static void main(String[] args) throws UnknownHostException, IOException {
//1.建立TCP客户端socket,确定连接的IP地址和端口号
Socket s = new Socket("127.0.0.1",10000);
//2.准备socket输出流,将数据封装后发送给服务端ServerSocket
OutputStream os = s.getOutputStream();
os.write("客户端的数据来了!".getBytes());
//3.得到socket输入流,接收服务端回送的数据
InputStream is = s.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b))!=-1){
System.out.println(new String(b,0,len));
}
//4.完成接收后,关闭客户端socket服务
s.close();
}
}
服务端:
package com.franky.net.tcp;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
/**
* TCP服务端
* @author Administrator
*
*/
public class TCPServer {
public static void main(String[] args) throws IOException {
//1.建立TCP服务端ServerSocket,监听确定的端口号
ServerSocket ss = new ServerSocket(10000);
//2.得到客户端的socket实例
Socket s = ss.accept();
//3.在客户端的socket实例中,得到InetAddress对象,取得其中的IP,数据等信息
InetAddress ia = s.getInetAddress();
String ip = ia.getHostAddress();
//3.1得到客户端的socket的输入流
InputStream is = s.getInputStream();
byte[] b = new byte[1024];
int len = is.read(b);
System.out.println(new String(b,0,len));
//4.完成接收后,回送消息给socket客户端
OutputStream os = s.getOutputStream();
os.write("服务端的回送数据!".getBytes());
s.close();
}
}