淺談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;
// 請求指定ip和端口號的服務(wù)器
socket = new Socket("127.0.0.1",3333);
while(true){
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
// 接收控制臺的輸入
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)聽3333端口
ss = new ServerSocket(3333);
// 等待接收客戶端的請求
socket = ss.accept();
while(true){
// 獲取連接對象的輸入流
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ù)報
ds.receive(dp);
// 從數(shù)據(jù)報中取出數(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ā)送對象
ds = new DatagramSocket();
// 將數(shù)據(jù)打包-->打成數(shù)據(jù)報
String info = "hello world!";
dp = new DatagramPacket(info.getBytes(), info.length(), InetAddress.getByName("localhost"),3333);
// 發(fā)出數(shù)據(jù)報
ds.send(dp);
}
}
以上這篇淺談java的TCP和UDP編程(附實(shí)例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)基于UDP協(xié)議網(wǎng)絡(luò)Socket編程(C/S通信)
- java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析
- Java模擬UDP通信示例代碼
- Java實(shí)現(xiàn)UDP通信過程實(shí)例分析【服務(wù)器端與客戶端】
- java UDP通信客戶端與服務(wù)器端實(shí)例分析
- Java基于ServletContextListener實(shí)現(xiàn)UDP監(jiān)聽
- 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)文章
Java Web開發(fā)中過濾器和監(jiān)聽器使用詳解
這篇文章主要為大家詳細(xì)介紹了Java中的過濾器Filter和監(jiān)聽器Listener的使用以及二者的區(qū)別,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-10-10
如何取消IDEA中的項(xiàng)目和Git倉庫的關(guān)聯(lián)
這篇文章介紹了一種取消已經(jīng)開啟代碼控制的項(xiàng)目與Git倉庫關(guān)聯(lián)的簡單方法,首先,在IntelliJ IDEA中打開項(xiàng)目,刪除.idea目錄下的vcs.xml文件,這樣IDE界面上的Git圖標(biāo)就會消失,接下來,打開項(xiàng)目所在位置,通過文件管理器啟用“顯示隱藏的項(xiàng)目”選項(xiàng)2024-10-10
Java?Mybatis的初始化之Mapper.xml映射文件的詳解
這篇文章主要介紹了Java?Mybatis的初始化之Mapper.xml映射文件的詳解,解析完全局配置文件后接下來就是解析Mapper文件了,它是通過XMLMapperBuilder來進(jìn)行解析的2022-08-08
Spring中AOP概念與兩種動態(tài)代理模式原理詳解
AOP是面向切面編程的技術(shù),AOP基于IoC基礎(chǔ),是對OOP的有益補(bǔ)充,流行的AOP框架有Sping AOP、AspectJ,這篇文章主要給大家介紹了關(guān)于Spring中AOP概念與兩種動態(tài)代理模式原理的相關(guān)資料,需要的朋友可以參考下2021-10-10
SpringBoot Tomcat啟動實(shí)例代碼詳解
這篇文章主要介紹了SpringBoot Tomcat啟動實(shí)例代碼詳解,需要的朋友可以參考下2017-09-09
SpringBoot項(xiàng)目實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫配置和springSecurity
這篇文章主要介紹了SpringBoot項(xiàng)目實(shí)現(xiàn)關(guān)閉數(shù)據(jù)庫配置和springSecurity的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
IDEA中配置多個版本的JDK的實(shí)現(xiàn)示例
IDEA可以配置多個JDK,根據(jù)需要使用不同版本的,本文就來介紹一下IDEA中配置多個版本的JDK的實(shí)現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03

