1.TCP传输服务端:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServerDemo {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
/*
* 需求:定义端点接受数据并打印在控制台上
*
* 服务端:
* 1.建立服务端的socket服务,ServerSocket();
* 并监听一个端口
* 2.获取连接过来的客户端对象
* 通过serverSocket的 accept()方法。所以这个方法是阻塞式的(没有连接就会等)
* 3.客户端如果发过来数据,那么服务端要使用对应的客户端对象,并获取该客户端对象的读取流来读取发过来的数据
* 并打印在控制台
* 4.关闭服务端(可选)
*/
//1.建立服务端的socket服务,ServerSocket(),并监听一个端口;
ServerSocket ss = new ServerSocket(10003);
//2.通过accept方法获取连接过来的客户端对象
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
System.out.println("ip:"+ip);
//3.获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
s.close();
}
}
2.TCP传输客户端:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class TCPClientDemo {
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
//1.创建客户端的socket服务 并指定连接的主机和端口
Socket s = new Socket("192.168.1.118", 10003);
//2.为了发送数据,应该获取socket流中的输出流
OutputStream out = s.getOutputStream();
out.write("TCP gemen lai le ".getBytes());
s.close();
}
}
网友评论