TCP(一):
1、客户端,服务端连接步骤:
- 1.客户端
- 创建Socket连接服务端(指定ip地址,端口号)通过ip地址找对应的服务器
- 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流
- 输入流可以读取服务端输出流写出的数据
- 输出流可以写出数据到服务端的输入流
- 2.服务端
- 创建ServerSocket(需要指定端口号)
- 调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket
- 调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的IO流
- 输入流可以读取客户端输出流写出的数据
- 输出流可以写出数据到客户端的输入流
2、示例代码如下:
客户端:
package com.jh.www;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Test1_Client {
/*客户端
* 创建Socket连接服务端(指定ip地址,端口号),通过ip地址找对应的服务器;
* 调用Socket的getInputStream()和getOutputStream()方法获取和服务端相连的IO流;
* 输入流可以读取服务器端输出流写出的数据;
* 输出流可以写出数据到服务端的输入流;
* */
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1",12345);
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
byte[] arr = new byte[1024];
int len = is.read(arr);
System.out.println(new String (arr,0,len));
os.write("我很好".getBytes());
socket.close();
}
服务端:
package com.jh.www;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Test1_Server {
/*服务端
* 创建ServerSocket(需要指定端口号);
* 调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket;
* 调用Socket的getInputStream()和getOutputStream()方法获取和客户端相连的io流;
* 输入流可以读取客户端输出流写出的数据;
* 输出流可以写出数据到客户端的输入流;
* **/
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(12345);
Socket socket = server.accept();
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
os.write("你好".getBytes());
byte[] arr = new byte[1024];
int len = is.read(arr);
System.out.println(new String (arr,0,len));
socket.close();
}
}