网络编程三要素
- ip 地址:找到计算机的唯一标识
- 端口:找到一个计算机中应用程序的唯一标识
- 通信协议:计算机之间交互的规则
基于 UDP 协议的通信程序
java 写发送端
package 网络编程.入门;
import java.io.IOException;
import java.net.*;
import java.util.Scanner;
import java.util.TreeMap;
public class UDPSender {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket();
while (true){
Scanner input = new Scanner(System.in);
String str = input.next();
byte[] bys = str.getBytes();
String ip = "xxx.xx.xx.xxx";
InetAddress address = InetAddress.getByName(ip);
int port = 12345;
DatagramPacket dp = new DatagramPacket(bys,bys.length,address,port);
ds.send(dp);
}
}
}
python写接收端
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
host = socket.gethostname()
port = 12345
address = ("", port)
s.bind(address)
while True:
receive_data, client = s.recvfrom(1024)
print(receive_data.decode())
java 写 UDP 接收端
package 网络编程.入门;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UDPReceiver {
public static void main(String[] args) throws IOException {
int port = 12346;
DatagramSocket ds = new DatagramSocket(port);
while (true){
byte[] bys =new byte[1024];
DatagramPacket dp = new DatagramPacket(bys,bys.length);
ds.receive(dp);
byte[] datas = dp.getData();
String dataString = new String(datas);
System.out.println(">"+ dataString);
}
}
}