淺談java的TCP和UDP編程(附實(shí)例講解)
TCP
客戶端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class MyClient {
public static void main(String[] args) throws Exception{
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null;
BufferedReader input = null;
// 請(qǐng)求指定ip和端口號(hào)的服務(wù)器
socket = new Socket("127.0.0.1",3333);
while(true){
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
// 接收控制臺(tái)的輸入
input = new BufferedReader(new InputStreamReader(System.in));
// out.println("this is client info!");
String info = input.readLine();
out.println(info);
String str = in.readLine();
System.out.println("客戶端顯示--》服務(wù)器的信息:" + str);
}
//in.close();
//out.close();
}
}
服務(wù)端:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServices {
public static void main(String[] args) throws Exception{
ServerSocket ss = null;
Socket socket = null;
BufferedReader in = null;
PrintWriter out = null;
BufferedReader input = null;
// 監(jiān)聽(tīng)3333端口
ss = new ServerSocket(3333);
// 等待接收客戶端的請(qǐng)求
socket = ss.accept();
while(true){
// 獲取連接對(duì)象的輸入流
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 獲取客戶端的輸入信息
String str = in.readLine();
input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("服務(wù)器顯示-->客戶端輸入數(shù)據(jù):" + str);
out = new PrintWriter(socket.getOutputStream(),true);
// 將數(shù)據(jù)輸出到客戶端
// out.println("hehe");
String info = input.readLine();
out.println(info);
}
// in.close();
// out.flush();
// out.close();
}
}
UDP
客戶端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPClient {
public static void main(String[] args) throws Exception {
DatagramSocket ds = null;
DatagramPacket dp = null;
byte[] buf = new byte[1024];
ds = new DatagramSocket(3333);
dp = new DatagramPacket(buf, 1024);
// 接收數(shù)據(jù),放入數(shù)據(jù)報(bào)
ds.receive(dp);
// 從數(shù)據(jù)報(bào)中取出數(shù)據(jù)
String info = new String(dp.getData(),0, dp.getLength());
System.out.println("接收到的信息是:" + info);
}
}
服務(wù)端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPServer {
public static void main(String[] args) throws Exception {
DatagramSocket ds = null;
DatagramPacket dp = null;
// 構(gòu)建發(fā)送對(duì)象
ds = new DatagramSocket();
// 將數(shù)據(jù)打包-->打成數(shù)據(jù)報(bào)
String info = "hello world!";
dp = new DatagramPacket(info.getBytes(), info.length(), InetAddress.getByName("localhost"),3333);
// 發(fā)出數(shù)據(jù)報(bào)
ds.send(dp);
}
}
以上這篇淺談java的TCP和UDP編程(附實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)基于UDP協(xié)議網(wǎng)絡(luò)Socket編程(C/S通信)
- java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析
- Java模擬UDP通信示例代碼
- Java實(shí)現(xiàn)UDP通信過(guò)程實(shí)例分析【服務(wù)器端與客戶端】
- java UDP通信客戶端與服務(wù)器端實(shí)例分析
- Java基于ServletContextListener實(shí)現(xiàn)UDP監(jiān)聽(tīng)
- java基于UDP實(shí)現(xiàn)圖片群發(fā)功能
- Java編程使用UDP建立群聊系統(tǒng)代碼實(shí)例
- 基于Java中UDP的廣播形式(實(shí)例講解)
- Java NIO實(shí)例UDP發(fā)送接收數(shù)據(jù)代碼分享
- java 多線程實(shí)現(xiàn)在線咨詢(udp)
相關(guān)文章
Spring?Cloud?OpenFeign?遠(yuǎn)程調(diào)用
這篇文章主要介紹了Spring?Cloud?OpenFeign?遠(yuǎn)程調(diào)用,本文通過(guò)遠(yuǎn)程調(diào)用的GitHub開(kāi)放API用到的OpenFeign作為示例代碼作為入口進(jìn)行講解。然后以圖解+解讀源碼的方式深入剖析了OpenFeign的運(yùn)行機(jī)制和架構(gòu)設(shè)計(jì),需要的朋友可以參考一下2022-08-08
JAVA?GUI基礎(chǔ)與MouseListener用法
這篇文章主要介紹了JAVA?GUI基礎(chǔ)與MouseListener用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
SpringMVC實(shí)現(xiàn)通過(guò)郵件找回密碼功能
本篇文章主要介紹的是SpringMVC實(shí)現(xiàn)通過(guò)郵件找回密碼功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。2016-10-10
Mybatis之類型處理器TypeHandler的作用與自定義方式
這篇文章主要介紹了Mybatis之類型處理器TypeHandler的作用與自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Java方法調(diào)用解析靜態(tài)分派動(dòng)態(tài)分派執(zhí)行過(guò)程
這篇文章主要為大家介紹了Java方法調(diào)用解析靜態(tài)分派動(dòng)態(tài)分派執(zhí)行過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
利用java反射機(jī)制調(diào)用類的私有方法(推薦)
下面小編就為大家?guī)?lái)一篇利用java反射機(jī)制調(diào)用類的私有方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
Java參數(shù)傳遞及值傳遞實(shí)現(xiàn)原理詳解
這篇文章主要介紹了Java參數(shù)傳遞及值傳遞實(shí)現(xiàn)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

