java Socket编程初探_TCP

来源:互联网 发布:淘宝上的乐高是真的吗 编辑:程序博客网 时间:2024/05/21 05:17
  • TCP 客户端
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) {// TODO Auto-generated method stubClient client = new Client();try {client.request();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void request() throws Exception{Socket client = new Socket("127.0.0.1", 8888);client.setSoTimeout(10*1000);//input from keyboardBufferedReader input=new BufferedReader(new InputStreamReader(System.in));//send to serverPrintStream out=new PrintStream(client.getOutputStream());//get from serverBufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));boolean flag=true;while(flag){System.out.println("Input:");String tmp=input.readLine();out.println(tmp);if(tmp.equals("bye")){flag = !flag;}else{String resp=in.readLine();System.out.println("It comes from server:"+resp);}}}}

  • TCP 服务端
import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;public class Server {static List<Socket> list;public static void main(String[] args) throws Exception {// TODO Auto-generated method stublist = new ArrayList<>();ServerSocket server = new ServerSocket(8888);Socket client = null;boolean f=true;while(f){client = server.accept();System.out.println("Conn to client.");new Thread(new ServerThread(client)).start();}server.close();}}

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.Socket;public class ServerThread implements Runnable {private Socket client;public ServerThread(Socket client) {// TODO Auto-generated constructor stubthis.client = client;Server.list.add(client);}@Overridepublic void run() {// TODO Auto-generated method stubtry {// send to client// get from clientBufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));boolean flag = true;while (flag) {String string = in.readLine();if (string == null || string.length() == 0) {flag = false;} else {if (string.equals("bye")) {flag = !flag;} else {for (int i = 0; i < Server.list.size(); i++) {PrintStream out = new PrintStream(Server.list.get(i).getOutputStream());out.println("echo:" + string);}}System.out.println("It comes from client:" + string);}}close();client.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void close(){for (int i = 0; i < Server.list.size(); i++) {try {Server.list.get(i).close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//Server.list.remove(index)}}


0 0