Socket

来源:互联网 发布:淘宝企业店铺怎么转让 编辑:程序博客网 时间:2024/06/01 09:14

客户端:

public class MyClient {public static void main(String[] args) {try {Socket s = new Socket("192.168.0.106",9090);OutputStream ops = s.getOutputStream();ops.write("gg".getBytes());ops.close();} catch (IOException e) {e.printStackTrace();}}}

服务端:

public class MyServer {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(9090);System.out.println("服务器开启");while(true){Socket socket = serverSocket.accept();new ServiceThread(socket);}} catch (IOException e) {e.printStackTrace();}}}


服务端线程

public class ServiceThread implements Runnable{Socket socket;private InputStream iS;public ServiceThread(Socket socket){this.socket = socket;InetAddress address = socket.getInetAddress();System.out.println("---客户端连接:"+address+"---");try {iS = socket.getInputStream();} catch (IOException e) {e.printStackTrace();}new Thread(this).start();}@Overridepublic void run() {while(true){try{String msg = MessageUtil.read(iS);System.out.println("客户端发送的消息:"+msg);Thread.sleep(200);}catch(Exception e){System.out.println("---客户端关闭连接---");break;}}}}

信息的读与写的方法

public class MessageUtil {public static String read(InputStream iS){try {byte[] b = new byte[1024];//缓存数组(1k)int length = -1;String content = "";while((length = iS.read(b))!= -1){String result = new String(b,0,length);if("#end#".equals(result)){break;}else{content += result;}}return content;} catch (Exception e) {throw new RuntimeException();}}public static void write(OutputStream ops,String t){try {ops.write(t.getBytes());ops.write("#end#".getBytes());} catch (IOException e) {e.printStackTrace();}}}



0 0