当前位置: 代码迷 >> 综合 >> Java网络编程实例学习日记
  详细解决方案

Java网络编程实例学习日记

热度:11   发布时间:2024-03-08 03:24:03.0

 

文章目录

一、UDP聊天

二、UDP下载文件

 



前言

两个UDP网络实例

 

一、UDP聊天

Sender:

package chat;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;public class talk implements Runnable {DatagramSocket socket=null;BufferedReader  reader=null;private String toIp;private int Port;private String fromIp;public talk(String toIp, int port, String fromIp) {this.toIp = toIp;this.Port = port;this.fromIp = fromIp;try {socket=new DatagramSocket(port);reader=new BufferedReader(new InputStreamReader(System.in));}catch (Exception e){e.printStackTrace();}}@Overridepublic void run() {while (true){try {String msg=reader.readLine();byte[] buffer=msg.getBytes();DatagramPacket packet = new DatagramPacket(buffer, buffer.length, new InetSocketAddress(this.toIp, this.Port));socket.send(packet);if (buffer.equals("bye")){break;}}catch (Exception e){e.printStackTrace();}finally {socket.close();try {reader.close();} catch (IOException e) {e.printStackTrace();}}}}
}

Receiver:

package chat;import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class talkReceive implements Runnable {DatagramSocket socket=null;private int Port;private String fromMsg;public talkReceive(int port,String fromMsg) {this.Port = port;this.fromMsg=fromMsg;try {socket= new DatagramSocket(Port);} catch (SocketException e) {e.printStackTrace();}}@Overridepublic void run() {while (true){try {byte[] buffer=new byte[1024];DatagramPacket packet=new DatagramPacket(buffer,0,buffer.length);socket.receive(packet);byte[] datas=packet.getData();String s = new String(datas, 0, datas.length);System.out.println(fromMsg+"说:"+s);if (s.equals("bye")){break;}}catch (Exception e){e.printStackTrace();}finally {socket.close();}}}
}

StudentTalk:

package chat;public class talkStudent {public static void main(String[] args) {new Thread(new talk("localhost",8888,"7777")).start();new Thread(new talkReceive(9000,"老师")).start();}}

TeacherTalk:

package chat;import chat.talkReceive;public class TeacherTalk {public static void main(String[] args) {new Thread(new talk("localhost",8888,"9000")).start();new Thread(new talkReceive(7777,"老师")).start();}
}

二、UDP下载文件

package threadTest;import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class UrlDown {public static void main(String[] args) throws Exception {URL url=new URL("目标");HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();InputStream inputStream=urlConnection.getInputStream();FileOutputStream fos=new FileOutputStream("fileName");byte[] buffer=new byte[1024];int len=0;while ((len=inputStream.read(buffer))!=-1){fos.write(buffer,0,len);}fos.close();inputStream.close();urlConnection.disconnect();}
}