socket编程总是报异常,但是并不是代码报错
希望有人能帮忙看看
package udpseder;
import java.io.IOException;
import java.net.*;
import java.nio.charset.StandardCharsets;
public class udpsender {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(8888);//接收数据
byte[] data = "hello.jack".getBytes(StandardCharsets.UTF_8);
DatagramPacket packet = new DatagramPacket(data, data.length,
InetAddress.getByName("192.168.12.1"), 888);
//封装datagrampack对象的data内容字节数组,主机ip
socket.send(packet);
socket.close();
}
}
package udpseder;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class udpserver {
public static void main(String[] args) throws IOException {
//创建datagramsocket对象在9998接收数据
DatagramSocket socket=new DatagramSocket(8888);
System.out.println("准备接收");
//udp协议数据包最大64k
byte [] buf=new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//调用接收方法
socket.receive(packet);//拆包取出数据并显示
int length=packet.getLength();//实际收到的数据字节长度
byte[] data = packet.getData();//接收到数据
String s=new String(data,0,length);
System.out.println(s);
socket.close();
}
}
"C:\Program Files\Java\jdk1.8.0_192\bin\java.exe" "-javaagent:D:\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=37980:D:\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_192\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_192\jre\lib\rt.jar;D:\IntelliJ IDEA Community Edition 2021.3.2\java\notemessage\out\production\notemessage" udpseder.udpsender
Exception in thread "main" java.net.BindException: Address already in use: Cannot bind
at java.net.DualStackPlainDatagramSocketImpl.socketBind(Native Method)
at java.net.DualStackPlainDatagramSocketImpl.bind0(DualStackPlainDatagramSocketImpl.java:84)
at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:93)
at java.net.DatagramSocket.bind(DatagramSocket.java:392)
at java.net.DatagramSocket.<init>(DatagramSocket.java:242)
at java.net.DatagramSocket.<init>(DatagramSocket.java:299)
at java.net.DatagramSocket.<init>(DatagramSocket.java:271)
at udpseder.udpsender.main(udpsender.java:9)
Process finished with exit code 1