发送数据思路:
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!