日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java socket send_java socket编程

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java socket send_java socket编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TcpServer

Server端所要做的事情主要是建立一個通信的端點,然后等待客戶端發送的請求。典型的處理步驟如下:

1. 構建一個ServerSocket實例,指定本地的端口。這個socket就是用來監聽指定端口的連接請求的。

2. 調用socket的accept()方法來獲得下面客戶端的連接請求。通過accept()方法返回的socket實例,建立了一個和客戶端的新連接。

3.通過這個返回的socket實例獲取InputStream和OutputStream,可以通過這兩個stream來分別讀和寫數據。

4.結束的時候調用socket實例的close()方法關閉socket連接。

packagesocket;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.Reader;importjava.net.ServerSocket;importjava.net.Socket;public classServer {public static void main(String args[]) throwsIOException {//為了簡單起見,所有的異常信息都往外拋

int port = 8899;//定義一個ServerSocket監聽在端口8899上

ServerSocket server = newServerSocket(port);//server嘗試接收其他Socket的連接請求,server的accept方法是阻塞式的

Socket socket =server.accept();//跟客戶端建立好連接之后,我們就可以獲取socket的InputStream,并從中讀取客戶端發過來的信息了。

Reader reader = newInputStreamReader(socket.getInputStream());char chars[] = new char[64];intlen;

StringBuilder sb= newStringBuilder();while ((len=reader.read(chars)) != -1) {

sb.append(new String(chars, 0, len));

}

System.out.println("from client: " +sb);

reader.close();

socket.close();

server.close();

}

}

TcpClient端

客戶端的請求過程稍微有點不一樣:

1.構建Socket實例,通過指定的遠程服務器地址和端口來建立連接。

2.通過Socket實例包含的InputStream和OutputStream來進行數據的讀寫。

3.操作結束后調用socket實例的close方法,關閉。

packagesocket;importjava.io.OutputStreamWriter;importjava.io.Writer;importjava.net.Socket;public classClient {public static void main(String args[]) throwsException {//為了簡單起見,所有的異常都直接往外拋

String host = "10.21.23.144"; //要連接的服務端IP地址

int port = 8899; //要連接的服務端對應的監聽端口//與服務端建立連接

Socket client = newSocket(host, port);//建立連接后就可以往服務端寫數據了

Writer writer = newOutputStreamWriter(client.getOutputStream());

writer.write("Hello mynona Server.");

writer.flush();//寫完后要記得flush

writer.close();

client.close();

}

}

Udp:

server端

因為UDP協議不需要建立連接,它的過程如下:

1. 構造DatagramSocket實例,指定本地端口。

2. 通過DatagramSocket實例的receive方法接收DatagramPacket.DatagramPacket中間就包含了通信的內容。

3. 通過DatagramSocket的send和receive方法來收和發DatagramPacket.

packageUdp2;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;public classUDPServer {public static void main(String args[]) throwsException

{//監聽9876端口

DatagramSocket serverSocket = new DatagramSocket(9876);byte[] receiveData = new byte[1024];byte[] sendData = new byte[1024];while(true)

{//構造數據包接收數據

DatagramPacket receivePacket = newDatagramPacket(receiveData, receiveData.length);//接收數據

serverSocket.receive(receivePacket);//解析數據

String sentence = newString( receivePacket.getData());

System.out.println("RECEIVED: " +sentence);

InetAddress IPAddress=receivePacket.getAddress();int port =receivePacket.getPort();

String capitalizedSentence=sentence.toUpperCase();

sendData=capitalizedSentence.getBytes();//構造發送數據包發送數據

DatagramPacket sendPacket = newDatagramPacket(sendData, sendData.length, IPAddress, port);

serverSocket.send(sendPacket);

}

}

}

UdpClient:

1. 構造DatagramSocket實例。

2.通過DatagramSocket實例的send和receive方法發送DatagramPacket報文。

3.結束后,調用DatagramSocket的close方法關閉。

packageUdp2;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;public classUDPClient {public static void main(String args[]) throwsException

{

BufferedReader inFromUser=

new BufferedReader(newInputStreamReader(System.in));

DatagramSocket clientSocket= newDatagramSocket();

InetAddress IPAddress= InetAddress.getByName("localhost");

System.out.println("IPAddress:" +IPAddress);byte[] sendData = new byte[1024];byte[] receiveData = new byte[1024];

String sentence=inFromUser.readLine();

sendData=sentence.getBytes();//發送數據

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);

clientSocket.send(sendPacket);//接收數據

DatagramPacket receivePacket = newDatagramPacket(receiveData, receiveData.length);

clientSocket.receive(receivePacket);

String modifiedSentence= newString(receivePacket.getData());

System.out.println("FROM SERVER:" +modifiedSentence);

clientSocket.close();

}

}

參考來源:http://shmilyaw-hotmail-com.iteye.com/blog/1556187

http://haohaoxuexi.iteye.com/blog/1979837

總結

以上是生活随笔為你收集整理的java socket send_java socket编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。