久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

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

今天學(xué)習(xí)了一下java如何實(shí)現(xiàn)socket通信,感覺(jué)難點(diǎn)反而是在io上,因?yàn)閖ava對(duì)socket封裝已經(jīng)很完善了。

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

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(客戶(hù)端要開(kāi)始發(fā)騷了,這是第 + count + 次!); count++; String line = input.readLine(); System.out.println(客戶(hù)端說(shuō): + line); if (line.equals(exit)) { flag = false; System.out.println(客戶(hù)端不想玩了!); } else { System.out.println(客戶(hù)端說(shuō): + 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(寫(xiě)出了數(shù)據(jù): + words); } cin.close(); } finally { client.close(); } }}

補(bǔ)充知識(shí):Java-Socket通信 同時(shí)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實(shí)現(xiàn)簡(jiǎn)單的socket通信教程就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 济宁市| 花莲县| 三亚市| 都江堰市| 江都市| 遂平县| 成安县| 赤城县| 山丹县| 长顺县| 德保县| 新化县| 忻城县| 绍兴市| 宁城县| 竹溪县| 常山县| 江城| 濮阳县| 永年县| 孙吴县| 山阳县| 沛县| 皮山县| 抚远县| 平度市| 勐海县| 青龙| 昌图县| 湖南省| 沁源县| 鄂尔多斯市| 淳化县| 疏勒县| 彭山县| 嘉荫县| 宁海县| 普宁市| 木兰县| 体育| 南昌县|