1.UDP传输
UDP传输,传输的是数据包;有丢包的可能,因为不验证对方是否收到。
常用于聊天软件,比方说QQ的聊天功能用的UDP。
UDP建立:
建立发送端:
class Send
{
public static void main(String[] args)
{
DatagramSocket ds = new DatagramSocket(8888);建立Socket并指定端口
String text = "1111111111111";
char[] arr = text.toCharArray();
DatagramPacket dp = new DatagramPacket(arr,arr.length,InetAddress.getByName("192.168.1.122"),10000);
ds.send(dp);//发送数据
ds.close();
}
}
程序中的InetAddress是IP地址的对象,可以通过getHostAddress和getHostName拿到IP地址和主机名
接收端:
class Receive
{
public static void main(String[] args)
{
DatagramSocket ds = new DatagramSocket(10000);创建接收端Socket
char[] arr = new char[1024];
DatagramPacket dp = new DatagramPacket(arr,arr.length);
ds.receive(dp);
String ip = dp.getAddress().getHostAddress();
int port = dp.getPort();
System.out.println("ip:"+ip+";port:"+port);
String text =new String (dp.getData(),0,dp.getLength());
System.out.println(text);
}
}
2.TCP传输
TCP两端的Socket,一个是客户端(Socket),一个是服务器(ServerSocket)
TCP连接是可靠的连接,连接是会经过三次握手,确保连接的正确。
客户端:
class Client
{
public static void main(String[] args)
{
Socket s = new Socket(8888);
OutputStream os = s.getOutputStream();
os.write("111111111".getBytes());
os.close();
}
}
服务器:
class Serve
{
public static void main(String[] args)
{
ServerSocket ss = new ServerSocket(10000);
Socket s = ss.accept();
String ip = s.getAddress().getHostAddress();
System.out.println("ip:"+ip);
InputStream is = s.getInputStream();
byte[] arr = new byte[1024];
int len = is.read(arr);
System.out.println(new String(arr,0,arr.length));
ss.close()
s.close()
}
}
有不对的地方,大家指正
|
|