首页 > 开发 > Java > 正文

Java开发实现的Socket双向通信功能示例

2024-07-13 10:16:18
字体:
来源:转载
供稿:网友

本文实例讲述了Java开发实现的Socket双向通信功能。分享给大家供大家参考,具体如下:

服务端

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class Server_1 {  public static void main(String[] args) {    InputStreamReader isr;    BufferedReader br;    OutputStreamWriter osw;    BufferedWriter bw;    String str;    Scanner in = new Scanner(System.in);    try {      ServerSocket server = new ServerSocket(4444);// 在本机的4444端口开放Server      Socket socket = server.accept();// 只要产生连接,socket便可以代表所连接的那个物体,同时这个server.accept()只有产生了连接才会进行下一步操作。      System.out.println(socket.getInetAddress());// 输出连接者的IP。      System.out.println("建立了一个连接!");      while (true) {        isr = new InputStreamReader(socket.getInputStream());        br = new BufferedReader(isr);        System.out.println(socket.getInetAddress() + ":" + br.readLine());        osw = new OutputStreamWriter(socket.getOutputStream());        bw = new BufferedWriter(osw);        System.out.print("回复:");        str = in.nextLine();        bw.write(str + "/n");        bw.flush();      }    } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }}

客服端

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class Client_1 {  public static void main(String[] args) {    InputStreamReader isr;    BufferedReader br;    OutputStreamWriter osw;    BufferedWriter bw;    String str;    Scanner in = new Scanner(System.in);    try {      Socket socket = new Socket("localhost", 4444);//     System.out.println(socket.getInetAddress());// 输出连接者的IP。      System.out.println("成功连接服务器");      while (true) {        osw = new OutputStreamWriter(socket.getOutputStream());        bw = new BufferedWriter(osw);        System.out.print("回复:");        str = in.nextLine();        bw.write(str + "/n");        bw.flush();        isr = new InputStreamReader(socket.getInputStream());        br = new BufferedReader(isr);        System.out.println(socket.getInetAddress() + ":" + br.readLine());      }    } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }}

希望本文所述对大家java程序设计有所帮助。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表