Socket编程简单实例

来源:互联网 发布:淘宝好还是京东商城好 编辑:程序博客网 时间:2024/05/22 07:45
package com.wanju.chat.simpleui;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Zonghe {public void server(){try {ServerSocket server = null;try {server = new ServerSocket(4700);} catch (Exception e) {System.out.println("can not listen to:" + e);}Socket socket = null;try {socket = server.accept();} catch (Exception e) {System.out.println("Error." + e);}String line;BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));PrintWriter os = new PrintWriter(socket.getOutputStream());BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));System.out.println("Client:" + is.readLine());line = sin.readLine();while (!line.equals("bye")) {os.println(line);os.flush();System.out.println("Server:" + line);System.out.println("Client:" + is.readLine());line = sin.readLine();} // 继续循环os.close(); // 关闭Socket输出流is.close(); // 关闭Socket输入流socket.close(); // 关闭Socketserver.close(); // 关闭ServerSocket} catch (Exception e) {System.out.println("Error:" + e);}}public void client(){try {Socket socket = new Socket("127.0.0.1", 4700);BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));PrintWriter os = new PrintWriter(socket.getOutputStream());BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));String readline;readline = sin.readLine(); // 从系统标准输入读入一字符串while (!readline.equals("bye")) {os.println(readline);os.flush();System.out.println("Client:" + readline);System.out.println("Server:" + is.readLine());readline = sin.readLine(); // 从系统标准输入读入一字符串} // 继续循环os.close(); // 关闭Socket输出流is.close(); // 关闭Socket输入流socket.close(); // 关闭Socket} catch (Exception e) {System.out.println("Error" + e); // 出错,则打印出错信息}}public static void main(String args[]) {final Zonghe zh = new Zonghe();new Thread(new Runnable(){@Overridepublic void run() {zh.server();}}).start();try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}new Thread(new Runnable(){@Overridepublic void run() {zh.client();}}).start();}}
缺点是 客户端一句,服务端一句,很慢


0 0
原创粉丝点击