发送数据思路:
1.创建发送端的Socket对象
2.获取输出流,写数据
3.释放资源
接收数据思路:
1.创建接收端的Socket对象
2.监听客户端连接。返回一个对应的Socket对象
3.获取输入流,读取数据显示在控制台
1.创建发送端的Socket对象
2.获取输出流,写数据
3.释放资源
接收数据思路:
1.创建接收端的Socket对象
2.监听客户端连接。返回一个对应的Socket对象
3.获取输入流,读取数据显示在控制台
4.释放资源
代码:
ClientDemo.java
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket s = new Socket("192.168.23.1", 10001);
OutputStream os = s.getOutputStream();
os.write("hello, TCP!".getBytes());
s.close();
}
}SeverDemo.java
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SeverDemo {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(10001);
Socket s = ss.accept();
InputStream is = s.getInputStream();
byte[] buf = new byte[1000];
int length = is.read(buf);
System.out.println("Information from " + s.getLocalAddress().getHostAddress() + " : " + new String(buf, 0, length));
s.close();
}
}InputStream中read()方法在接收到数据报前一直阻塞,在收到数据后才会继续运行。
需要先开启接收再发送。
运行结果:
在SeverDemo控制台中:
Information from 192.168.23.1 : hello, TCP!

本文介绍了一个简单的TCP通信案例,包括客户端发送数据和服务器接收数据的过程。客户端通过Socket对象创建连接并发送消息,服务器监听连接请求并接收显示消息。

被折叠的 条评论
为什么被折叠?



