1. 程式人生 > >Java Socket通訊及TCP/UDP實現

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通訊TCPUDP資料包大小的確定

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通過三次握手建立連線: