2
我在用IntelliJ Idea.I試圖從客戶端讀取數據並打印服務器接收到的數據,以編程有關UDP的UDP。這裏是代碼。UDP接收數據
Server
public class UDPServer {
public static void main(String[] args) throws IOException {
DatagramSocket datagramSocket = new DatagramSocket(11111);
byte[] b = new byte[1024];
DatagramPacket datagramPacket = new DatagramPacket(b,1024);
while (true){
datagramSocket.receive(datagramPacket);
byte[] data = datagramPacket.getData();
InetAddress address = datagramPacket.getAddress();
String ip = address.getHostAddress();
String string = new String(data,0,data.length);
System.out.println("IP is "+ip+" "+string);
}
} }
Client
public class UDPClient {
public static void main(String[] args) throws IOException {
DatagramSocket datagramSocket = new DatagramSocket();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String dataString;
while((dataString = bufferedReader.readLine())!=null){
if(dataString.equals("886")){
System.out.println("UDPClient exit");
break;
}
DatagramPacket datagramPacket = new DatagramPacket(dataString.getBytes(),dataString.getBytes().length, InetAddress.getByName("192.168.3.2"),11111);
datagramSocket.send(datagramPacket);
}
datagramSocket.close();
}
}
我跑了Server
,然後再開始Client
,並輸入something.Here的輸入和打印。
input
ABCDEF
你好
print
IP是192.168.3.2 123456
IP是192.168.3.2abcdef
IP是192.168.3。2hellof
1. THRID打印有另一個「F」
2.at每個打印的到底有許多小廣場(我沒有足夠的聲譽插入圖片,抱歉)
我it.And你能看看這張照片[打印](https://drive.google.com/file/? d/0BxejIA_xra_SQVFBT0hsSE9mcXM/view?usp = sharing)。正方形很奇怪。 – HelloSilence
這些可能是緩衝區中的不可打印字符。在應用上述修復程序後,這仍然發生嗎? – dbush
應用代碼後就可以了。非常感謝。^ _ ^ – HelloSilence