java中的网络支持-socket编程

来源:互联网 发布:mac优酷播放量 编辑:程序博客网 时间:2024/05/04 20:38

服务端执行server.accept方法以后,会处于阻塞状态,也就是直到启动了客户端,从客户端传来信息才会继续运行下去,而客户端在启动后也处于阻塞状态,直到服务端给它回应才会继续运行下去


先运行服务器后,控制台不会有任何输出

运行客户端以后,服务器端才会输出“一个客户端建立连接”

然后客户端输出 ”欢迎使用“



服务端:

/** 必须先启动服务器 后连接1、创建服务器  指定端口   ServerSocket(int port) 2、接收客户端连接  3、发送数据+接收数据* */public class Server {/** * @param args * @throws IOException  */public static void main(String[] args) throws IOException {//1、创建服务器  指定端口   ServerSocket(int port) ServerSocket server = new ServerSocket(8888);//2、接收客户端连接   阻塞式Socket socket =server.accept();System.out.println("一个客户端建立连接");//3、发送数据String msg ="欢迎使用";//输出流/*BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));bw.write(msg);bw.newLine();bw.flush();*/DataOutputStream dos = new DataOutputStream(socket.getOutputStream());dos.writeUTF(msg);dos.flush();}}






客户端:

/** 1、创建客户端   必须指定服务器+端口    此时就在连接 Socket(String host, int port)  2、接收数据 +发送数据 */public class Client {/** * @param args * @throws IOException  * @throws UnknownHostException  */public static void main(String[] args) throws UnknownHostException, IOException {//1、创建客户端   必须指定服务器+端口    此时就在连接Socket client = new Socket("localhost",8888);//2、接收数据/*BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));String echo =br.readLine(); //阻塞式方法System.out.println(echo);*/DataInputStream dis = new DataInputStream(client.getInputStream());String echo = dis.readUTF();System.out.println(echo);}}







这里的服务器只能接受一个客户端的链接,

要实现多客户端的链接也很简单

只要把接受数据代码块放在死循环中就好了


public class MultiServer {/** * @param args * @throws IOException  */public static void main(String[] args) throws IOException {//1、创建服务器  指定端口   ServerSocket(int port) ServerSocket server = new ServerSocket(8888);//2、接收客户端连接   阻塞式while(true){ //死循环  一个accept()一个客户端Socket socket =server.accept();System.out.println("一个客户端建立连接");//3、发送数据String msg ="欢迎使用";//输出流DataOutputStream dos = new DataOutputStream(socket.getOutputStream());dos.writeUTF(msg);dos.flush();}}}





0 0
原创粉丝点击