国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Java實現(xiàn)簡單的socket通信教程

瀏覽:3日期:2022-08-19 16:57:56

今天學習了一下java如何實現(xiàn)socket通信,感覺難點反而是在io上,因為java對socket封裝已經(jīng)很完善了。

今天代碼花了整個晚上調(diào)試,主要原因是io的flush問題和命令行下如何運行具有package的類,不過最后問題基本都解決了,把代碼貼出來供大家參考

server

public class TcpServer { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(9091); try { Socket client = server.accept(); try { BufferedReader input = new BufferedReader(new InputStreamReader(client.getInputStream())); boolean flag = true; int count = 1; while (flag) { System.out.println(客戶端要開始發(fā)騷了,這是第 + count + 次!); count++; String line = input.readLine(); System.out.println(客戶端說: + line); if (line.equals(exit)) { flag = false; System.out.println(客戶端不想玩了!); } else { System.out.println(客戶端說: + line); } } } finally { client.close(); } } finally { server.close(); } }}

client

public class TcpClient { public static void main(String[] args) throws Exception { Socket client = new Socket(127.0.0.1, 9091); try { PrintWriter output = new PrintWriter(client.getOutputStream(), true); Scanner cin = new Scanner(System.in); String words; while (cin.hasNext()) { words = cin.nextLine(); output.println(words); System.out.println(寫出了數(shù)據(jù): + words); } cin.close(); } finally { client.close(); } }}

補充知識:Java-Socket通信 同時JSON傳遞與解析

服務(wù)端

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;import net.sf.json.JSONObject;public class Server_2 { public static void main(String[] args) { Scanner in=new Scanner(System.in); InputStreamReader isr; BufferedReader br; OutputStreamWriter osw; BufferedWriter rw; try { ServerSocket serverSocket=new ServerSocket(4444); Socket socket=serverSocket.accept(); isr=new InputStreamReader(socket.getInputStream()); br=new BufferedReader(isr); String str=br.readLine(); JSONObject object=JSONObject.fromObject(str); System.out.println('ID:'+object.getInt('ID')); System.out.println('Name:'+object.getString('name')); System.out.println('password:'+object.getString('password')); br.close(); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } }}

客服端

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;import java.util.Scanner;import net.sf.json.JSONObject;public class Client_2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); InputStreamReader isr; BufferedReader br; OutputStreamWriter osw; BufferedWriter rw; try { Socket socket = new Socket('localhost', 4444); osw = new OutputStreamWriter(socket.getOutputStream()); rw = new BufferedWriter(osw); User user = new User(); System.out.println('Id:'); user.setID(in.nextInt()); in.nextLine(); System.out.println('Name:'); user.setName(in.nextLine()); System.out.println('Password:'); user.setPassword(in.nextLine()); JSONObject jsonObject = JSONObject.fromObject(user); rw.write(jsonObject.toString()+'n'); rw.close(); socket.close(); } catch (Exception e) { // TODO: handle exception } }}

User

public class User { int ID; String name; String password; public int getID() { return ID; } public void setID(int iD) { ID = iD; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}

以上這篇Java實現(xiàn)簡單的socket通信教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 凤山县| 贺州市| 航空| 永年县| 苏尼特左旗| 江华| 衡山县| 防城港市| 南涧| 雅江县| 二连浩特市| 神池县| 旅游| 四平市| 涞水县| 尖扎县| 龙南县| 惠东县| 西盟| 梅河口市| 乐至县| 卢湾区| 永兴县| 桂平市| 九龙县| 兴安县| 永春县| 宜兰市| 鹤岗市| 南开区| 绥德县| 宝丰县| 城步| 乌兰浩特市| 泊头市| 绥中县| 高唐县| 丹棱县| 玉树县| 堆龙德庆县| 北京市|