Java Socket通訊及TCP/UDP實現
記得上一次接觸socket這一塊還是在大三抓耳撓腮的整畢設的時候,兩年後的今天又用到了它,那就把Socket實現組播什麼的做一個記錄吧。
TcpServer
public class TcpServer {
private static boolean isruning = true;
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(5583);
while (isruning) {
// 連線
Socket socket = serverSocket.accept();
System.out
.println("有新客戶端(" + socket.getInetAddress() + ")連線。。");
OutputStream stream = socket.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(stream);
writer.write("hello socket!" );
writer.flush();
writer.close();
System.out
.println("客戶端(" + socket.getInetAddress() + ")會話結束。。");
}
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TcpClient
public class TcpClient {
public static void main(String[] args) {
String host = "localhost"; // 要連線的服務端IP地址
int port = 5583; // 要連線的服務端對應的監聽埠
try {
// 與服務端建立連線
Socket client = new Socket(host, port);
InputStream inputStream = client.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(reader);
String message = bufferedReader.readLine();
System.out.println(message);
bufferedReader.close();
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
UdpSend
public class UdpSend {
public static void main(String[] args) {
MulticastSocket socket;
try {
socket = new MulticastSocket(8842);
socket.setTimeToLive(1);
InetAddress address = InetAddress.getByName("233.0.0.0");
socket.joinGroup(address);
byte[] buf = "hello world!".getBytes();
DatagramPacket p = new DatagramPacket(buf, buf.length, address,
8842);
socket.send(p);
System.out.println("廣播已經發出");
} catch (IOException e) {
e.printStackTrace();
}
}
}
UdpReceive
public class UdpReceive {
public static void main(String[] args) {
MulticastSocket socket;
try {
socket = new MulticastSocket(8842);
socket.setTimeToLive(1);
InetAddress address = InetAddress.getByName("233.0.0.0");
socket.joinGroup(address);
byte[] buf = new byte[3000];
DatagramPacket p = new DatagramPacket(buf, buf.length);
socket.receive(p);
System.out.println("接受到" + p.getAddress() + "的廣播訊息"
+ new String(p.getData()));
} catch (IOException e) {
e.printStackTrace();
}
}
}
相關推薦
Java Socket通訊及TCP/UDP實現
記得上一次接觸socket這一塊還是在大三抓耳撓腮的整畢設的時候,兩年後的今天又用到了它,那就把Socket實現組播什麼的做一個記錄吧。 TcpServer public class T
java網路通訊之Socket通訊:TCP/UDP
網路通訊三要素:協議,IP,埠。七層協議。 package com.qianfeng.test; /* * 網路程式設計基礎: * 網路的通訊:三要素:協議,IP,埠 * 1.IP:在網路上唯一的標記一臺主機 127.0.0.1 :保留地址/本地地址 java
Java Socket通訊實現私聊、群聊 WebSocket+Java 私聊、群聊例項
前言 閒言少敘,上程式碼! 程式碼編寫 server服務端 /** * 服務端 */ public class Server { private static ServerSocket server = null;
C++:實現socket通訊(TCP/IP)例項
首先宣告,博主之前從來沒有寫過通訊方面的東西,這次之所以寫這個是因為專案需要,因此本文主要介紹一個使用C++語言及Socket來實現TCP/IP通訊的例項,希望可以幫助入門者。 一、什麼是TCP/IP? TCP提供基於IP環境下的資料可靠性傳
-1-7 java 網路程式設計基本知識點 計算機網路 TCP/IP協議棧 通訊必備 tcp udp
Socket和ServerSocket 建立客戶端和伺服器端 建立連線後,通過Socket中的IO流進行資料的傳輸 關閉socket 同樣,客戶端與伺服器端是兩個獨立的應用程式。
java socket通訊I/O阻塞>多執行緒實現非阻塞通訊
簡單的java socket通訊,多個客戶端同時連線,功能可在此基礎上進行擴充套件。效果如圖: server: package com.lb.LB_Socket; import java.io.BufferedReader; import ja
Socket程式設計(非同步通訊)(Tcp,Udp)
上一章主要展示了Socket的Tcp\Udp兩種協議下的基本通訊方式,屬於同步通訊。至於一個伺服器對應多個客戶端,或者對應多個請求,我們採用的是多執行緒的方式來解決此問題。然而本章節我們將有更好的方式去實現它:Socket在Tcp\Udp兩種協議下的非同步通訊方式。 基
SOCKET通訊中TCP、UDP資料包大小的確定
TCP、UDP資料包大小的確定 UDP和TCP協議利用埠號實現多項應用同時傳送和接收資料。資料通過源埠傳送出去,通過目標埠接收。有的網路應用只能使用預留或註冊的靜態埠;而另外一些網路應用則可以使用未被註冊的動態埠。因為UDP和TCP報頭使用兩個位元組存放埠號,所以埠號的有效範圍是從0到6
Java Socket通訊實現檔案傳輸/圖片傳輸
Scoket傳送 ClientTcpSend.java: import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.InetS
Java Socket編程之UDP
oid 大小 throw tar int while thread print client UDP編程: 將要傳輸的數據定義成數據包(Datagram),在數據報中指明所要到達的Socket(主機地址和端口號),然後再將數據報發送出去。 相關操作類: Datagr
第二十七天- 網路通訊協議 TCP UDP 緩衝區
1.網路通訊協議 osi七層模型:按照分工不同把網際網路協議從邏輯上劃分了層級 socket層 2.理解socket: Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,So
java Socket程式設計之TCP基本原理
通訊原理: 1.伺服器程式建立一個ServerSocket,呼叫accept方法等待客戶機來連線。 2.客戶端程式建立一個Socket,請求與伺服器建立連線。 3.伺服器接收客戶機的連線請求,同時建立一個新的Socket與客戶端建立連線。伺服器繼續等待新的請求。 關鍵類: ServerS
Java-Socket通訊 同時JSON傳遞與解析
服務端 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.O
JAVA Socket通訊 打造屬於自己的網盤
近一個月沒敲JAVA程式碼了,最近老師佈置了一個寫JAVA網盤的作業,總共花了十幾個小時,總算寫完了,debug真的累,感覺自己還是菜了,沒有那種有一個想法就能馬上用程式碼實現的能力。。。。不扯了,下面開始正題。 功能介紹 支援1個客戶端,1個伺服器端。伺服器提供網盤空間。 首先執行
JAVA-Socket通訊 打造屬於自己的聊天室(初級版)
我們每天都在使用著微信、QQ等聊天軟體,但不知你是否有想過這些聊天軟體是如何實現的?是否想過要製作一個屬於自己的聊天室? 本篇部落格將帶你打造一個簡單的屬於自己的聊天室,將cmd作為聊天視窗,可通過內網,與周圍的小夥伴相互通訊,當然也可以掛到伺服器上,實現通過外網的通訊。同時還能通過服務端視窗對連入的使用者
AgileEAS.NET SOA 中介軟體平臺.Net Socket通訊框架-簡單例子-實現簡單的服務端客戶端訊息應答
一、AgileEAS.NET SOA中介軟體Socket/Tcp框架介紹 AgileEAS.NET SOA中介軟體Socket/Tcp框架是一套Socket通訊的訊息中介軟體: 二、簡單例子-實現簡單的伺服器客戶段訊息應答 我們接下來實現一個簡單的例子,例子的場景非常的簡單,客戶端向服
網路通訊協議tcp,udp區別
1 網路通訊協議 Tcp udp的區別 重點(*****) Tcp三次握手四次揮手(******) udp客戶端多人聊天 import socket udp_client = socket.socket(type=socket.SOCK_DGRAM) ip_port = ('
基於BIO的Java Socket通訊
轉自:http://blog.csdn.net/shirdrn/article/details/6254821 BIO,即阻塞IO,在基於Socket的訊息通訊過程中,Socket服務端向外部提供服務,而Socket客戶端可以建立到Socket服務端的連線,進而
Java併發機制及鎖的實現原理
Java併發程式設計概述 併發程式設計的目的是為了讓程式執行得更快,但是,並不是啟動更多的執行緒就能讓程式最大限度地併發執行。在進行併發程式設計時,如果希望通過多執行緒執行任務讓程式執行得更快,會面臨非常多的挑戰,比如上下文切換的問題、死鎖的問題,以及受限於硬體和軟體的資源
java Socket通訊,客戶端與服務端相互發訊息
1.通訊過程 網路分為應用層,http、ssh、telnet就是屬於這一類,建立在傳輸層的基礎上、其實就是定義了各自的編碼解碼格式,分層如下: 2.Socket連線 上述通訊都要先在傳輸層有建立連線的基礎上才能完成,TCP通過三次握手建立連線: