1、创建一个ServerSocket 同时输入监听的端口号;服务端是ServerSocket,客户端是Socket
2、让线程处于阻塞状态
3、当客户端与服务端连接成功后,会解除阻塞状态
4、通过对应的Socket对象获得客户端传送过来的信息;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class BasicSocketServerTest {
public static void main(String[] args) throws IOException {
System.out.println("服务器启动,开始监听");
try(ServerSocket serverSocket = new ServerSocket(8888);
//线程处于阻塞状态
Socket socket = serverSocket.accept();
//连接成功后会得到客户端中对应的socket对象,解除阻塞
//通过客户端对应的Socket对象中的输入流对象,获取客户端发送过来的消息
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));)
//字符 字节的转换)
{
System.out.println(br.readLine());
}catch (Exception e) {
e.printStackTrace();
System.out.println("服务器启动失败");
}
//按行读出
}
}
客户端的创建:
- 创建Socket对象,同时指明服务器和端口(这里是本机 所以为127.0.0.1)
- 通过PrintWriter 获得outputstream
- pw信息打印一下
import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; public class BasicSocketClient { public static void main(String[] args) throws IOException { try(Socket socket = new Socket("127.0.0.1",8888); PrintWriter pw = new PrintWriter(socket.getOutputStream()); ) { pw.println("你好啊,服务端"); }catch (Exception e){ e.printStackTrace(); } } }
效果如图: