java Tcp通信客戶端與服務器端實例
本文實例講述了java Tcp通信客戶端與服務器端。分享給大家供大家參考,具體如下:
由服務器端發(fā)送數(shù)據(jù)
服務器端:
import java.io.*; import java.net.*; public class TestSocket { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(8888); while(true) { Socket s = ss.accept(); OutputStream os = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye"); dos.close(); // os.flush(); os.close(); // s.close(); } } catch (IOException e) { e.printStackTrace(); System.out.println("there is a wrong"); } } }
用戶端:
import java.io.*; import java.net.*; public class TestClient { public static void main(String[] args){ try { Socket s = new Socket("127.0.0.1",8888); DataInputStream dis = new DataInputStream(s.getInputStream()); System.out.println(dis.readUTF()); s.close(); dis.close(); } catch (Exception e) { e.printStackTrace(); } } }
無論是客戶端還是服務器端都可以收發(fā)數(shù)據(jù)。
交互型
用戶端
import java.io.*; import java.net.*; public class TestClient2 { public static void main(String[] args){ try { Socket s = new Socket("127.0.0.1",8886); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); DataInputStream dis = new DataInputStream(s.getInputStream()); System.out.println(dis.readUTF()); dos.writeUTF("hey"); String str = null; if((str = dis.readUTF()) != null) { System.out.println(str); } s.close(); dis.close(); dos.close(); } catch (Exception e) { e.printStackTrace(); } } }
服務器端:
public class TestServer2 { public static void main(String[] args) { InputStream in = null; OutputStream out = null; try { ServerSocket ss = new ServerSocket(8886); while(true) { Socket s = ss.accept(); in = s.getInputStream(); out = s.getOutputStream(); DataOutputStream dos = new DataOutputStream(s.getOutputStream()); DataInputStream dis = new DataInputStream(s.getInputStream()); String str = null; if((str = dis.readUTF() )!= null) { System.out.println(str); System.out.println("form " + s.getInetAddress()); System.out.println("port " + s.getPort()); // dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye"); } dos.writeUTF("hi hello"); dis.close(); dos.close(); s.close(); } } catch (IOException e) { e.printStackTrace(); System.out.println("there is a wrong"); } } }
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java Socket編程技巧總結(jié)》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關(guān)文章
梳理總結(jié)Java?static關(guān)鍵字的方法作用
這篇文章主要介紹了梳理總結(jié)Java?static關(guān)鍵字的方法作用,?static?關(guān)鍵字可以用來修飾的成員變量和成員方法,被修飾的成員是屬于類的,而不是單單是屬于某個對象的2022-06-06Spring中的注解@Value("#{}")與@Value("${}")的區(qū)別
這篇文章主要介紹了Spring中的注解@Value(“#{}“)與@Value(“${}“)的區(qū)別到底是什么,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06