摘要:最近在學(xué),正好做一些筆記,以防止自己忘了。端創(chuàng)建綁定的與方法用于測試端接收消息本地測試打印結(jié)果
最近在學(xué)Java,正好做一些筆記,以防止自己忘了。
client端//UdpClient.java import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException; public class UdpClient { private static DatagramSocket clientSocket = null; private InetSocketAddress serverAddress = null; public UdpClient(String host, int port) throws SocketException { clientSocket = new DatagramSocket( ); //創(chuàng)建socket serverAddress = new InetSocketAddress(host, port); //綁定sever的ip與port } public void send(String msg) throws IOException { try { byte[] data = msg.getBytes("utf-8"); DatagramPacket packet = new DatagramPacket(data, data.length, serverAddress); clientSocket.send(packet); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //main方法用于測試 public static void main(String[] args) throws Exception { UdpClient client = new UdpClient("127.0.0.1", 14586); client.send("hello world"); clientSocket.close(); } }server端
//UdpServer.java import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UdpServer { private byte[] data = new byte[1024]; private static DatagramSocket serverSocket = null; private DatagramPacket packet = null; public UdpServer(int port) throws SocketException { serverSocket = new DatagramSocket(port); System.out.println("sever start!"); } //接收消息 public String recieve() throws IOException { packet = new DatagramPacket(data, data.length); serverSocket.receive(packet); String info = new String(packet.getData(), 0, packet.getLength()); System.out.println("recieve message from " + packet.getAddress().getHostAddress() + ":" + packet.getPort() + " "+ info); return info; } //本地測試 public static void main(String[] args) throws Exception { UdpServer server = new UdpServer(14586); server.recieve(); } }打印結(jié)果
sever start!
recieve message from 127.0.0.1:64478 hello world
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/64110.html
摘要:上一篇,我初步整理了服務(wù)端接收日志的例子,本篇主要是對客戶端模擬操作的一個基本例子。 上一篇,我初步整理了Syslog服務(wù)端接收日志的例子,本篇主要是對客戶端模擬操作的一個基本例子。 package com.tony.util; import java.io.*; import java.net.*; /** * UDP客戶端程序,用于對服務(wù)端發(fā)送數(shù)據(jù),并接...
摘要:知乎的點贊,應(yīng)該還是可以參考的。除了網(wǎng)絡(luò)通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會話狀態(tài)的調(diào)用,還需要有會話的狀態(tài)保持的功能。一般來說,框架實現(xiàn)的架構(gòu)原理都是類似的。服務(wù)端響應(yīng)主要是服務(wù)端業(yè)務(wù)邏輯實現(xiàn)。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處 在我剛剛了解分布式的時候,經(jīng)常對RPC和分布式有些混淆,甚至一直以為兩者對等,所以我們先看看他們有什么區(qū)別? RPC實現(xiàn)了服務(wù)消費...
摘要:知乎的點贊,應(yīng)該還是可以參考的。除了網(wǎng)絡(luò)通信,還需要有高效的序列化框架,以及一種尋址方式,如果是帶會話狀態(tài)的調(diào)用,還需要有會話的狀態(tài)保持的功能。一般來說,框架實現(xiàn)的架構(gòu)原理都是類似的。服務(wù)端響應(yīng)主要是服務(wù)端業(yè)務(wù)邏輯實現(xiàn)。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處 在我剛剛了解分布式的時候,經(jīng)常對RPC和分布式有些混淆,甚至一直以為兩者對等,所以我們先看看他們有什么區(qū)別? RPC實現(xiàn)了服務(wù)消費...
摘要:這一點其實是非常不妥的,有潛在的安全問題。這次,在項目中終于采用了以它為基礎(chǔ)的集群方案。相反,使用一個周期,但針對每個生成一個一次性的,模擬隨機(jī)發(fā)送。同時,要記得用完之后立即釋放。 當(dāng)初創(chuàng)建簡書賬號的時候曾立下宏愿,希望保持周更,無奈現(xiàn)實殘酷,整個5月都處于忙忙碌碌的狀態(tài),居然令這個本來并不算太宏偉的目標(biāo)難以為繼,最終導(dǎo)致5月份交了白卷!【好吧,我承認(rèn),是我意志不夠堅定,太懶了,;)】...
摘要:整個包,按照功能可以大致劃分如下鎖框架原子類框架同步器框架集合框架執(zhí)行器框架本系列將按上述順序分析,分析所基于的源碼為。后,根據(jù)一系列常見的多線程設(shè)計模式,設(shè)計了并發(fā)包,其中包下提供了一系列基礎(chǔ)的鎖工具,用以對等進(jìn)行補(bǔ)充增強(qiáng)。 showImg(https://segmentfault.com/img/remote/1460000016012623); 本文首發(fā)于一世流云專欄:https...
閱讀 2941·2023-04-26 01:52
閱讀 3468·2021-09-04 16:40
閱讀 3629·2021-08-31 09:41
閱讀 1764·2021-08-09 13:41
閱讀 556·2019-08-30 15:54
閱讀 2960·2019-08-30 11:22
閱讀 1612·2019-08-30 10:52
閱讀 948·2019-08-29 13:24