java向某一IP发送消息_javaTCP如何将数据发送给指定IP的客户端(求代码)谢谢! 爱问知识人...
packagecom。socket。tcp。demo;
importjava。io。IOException;
importjava。io。OutputStream;
importjava。
net。Socket;
importjava。net。UnknownHostException;
publicclassClientDemo {
?/**
? * @param args
? * @throws IOException
? * @throws UnknownHostException
? */
?publicstaticvoidmain(String[] args) throwsUnknownHostException, IOException {
? ?//客戶端發數據到服務端
? ?/*
? ? * Tcp傳輸,客戶端建立的過程。
? ? * 1,創建tcp客戶端socket服務。使用的是Socket對象。
? ? * ? 建議該對象一創建就明確目的地。要連接的主機。
? ? * 2,如果連接建立成功,說明數據傳輸通道已建立。
? ? * ? 該通道就是socket流 ,是底層建立好的。 既然是流,說明這里既有輸入,又有輸出。
? ? * ? 想要輸入或者輸出流對象,可以找Socket來獲取。
? ? * ? 可以通過getOutputStream(),和getInputStream()來獲取兩個字節流。
? ? * 3,使用輸出流,將數據寫出。
? ? * 4,關閉資源。
? ? */
? ?//創建客戶端socket服務。
? ?//連接目標服務器的地址,192。
168。1。100是目標服務器的地址,10002是目標服務器的端口
? ?Socket socket = newSocket("192。168。1。100",10002);
? ?//獲取socket流中的輸出流。
向服務器輸出消息,即發消息到服務器
? ?OutputStream out = socket。getOutputStream();
? ?//使用輸出流將指定的數據寫出去。
? ?out。
write("tcp演示:哥們又來了!"。getBytes());
? ?//關閉資源。
? ?socket。close();
?}
}
======================================
packagecom。
socket。tcp。demo;
importjava。io。IOException;
importjava。io。InputStream;
importjava。net。
ServerSocket;
importjava。net。Socket;
publicclassServerDemo {
?//UDP:發送端、接收端 (無連接)
?//TCP:客戶端、服務端 (要連接)先啟動服務端,在啟動客戶端
?/**
? * @param args
? * @throws IOException
? */
?publicstaticvoidmain(String[] args) throwsIOException {
? //服務端接收客戶端發送過來的數據,并打印在控制臺上。
?
? ?/*
? ? * 建立tcp服務端的思路:
? ? * 1,創建服務端socket服務。通過ServerSocket對象。
? ? * 2,服務端必須對外提供一個端口,否則客戶端無法連接。
? ? * 3,獲取連接過來的客戶端對象。
? ? * 4,通過客戶端對象獲取socket流讀取客戶端發來的數據
? ? * ? 并打印在控制臺上。
? ? * 5,關閉資源。
關客戶端,關服務端。
? ? */
? ?//1創建服務端對象。
? ?ServerSocket ss = newServerSocket(10002);
? ?//監聽應用所在服務器的10002端口,
? ?//看有沒有客戶端連接過來,或者發送消息
? ?//2,獲取連接過來的客戶端對象。
? ?Socket s = ss。accept();//阻塞式。
? ?String ip = s。getInetAddress()。getHostAddress();
? ?//獲取連接過來客戶端的IP地址
? ?//3,通過socket對象獲取輸入流,要讀取客戶端發來的數據,
? ?InputStream in = s。
getInputStream();
? ?byte[] buf = newbyte[1024];
? ?intlen = in。read(buf);
? ?String text = newString(buf,0,len);
? ?System。
out。println(ip ":" text);
? ?s。close();
? ?ss。close();//關閉服務器,理論上是不用關的
?}
}
socket客戶端服務端是相對的,拿到流之后寫數據就行了。
全部
總結
以上是生活随笔為你收集整理的java向某一IP发送消息_javaTCP如何将数据发送给指定IP的客户端(求代码)谢谢! 爱问知识人...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在java读字符串入文件_如何在java
- 下一篇: 好听的蒙语名字男孩