【Java】UDP聊天程序

package tmp;

import java.io.BufferedInputStream;
import java.net.*;
import java.util.Scanner;

public class TmpMain implements Runnable{
	DatagramSocket sockSend,sockRecv;
	DatagramPacket packSend,packRecv;
	private byte bufSend[],bufRecv[];
	private static InetAddress sendIP;
	private static int portSend,portRecv;
	private static final int MAX_LEN=1024;
	Thread th;
	
	TmpMain() throws Exception{
		th=new Thread(this);
		th.start();
		sendData();
	}
	
	public void sendData() throws Exception{
		@SuppressWarnings("resource")
		Scanner cin=new Scanner(new BufferedInputStream(System.in));
		String str="";
		while(true){
			str=cin.next();
			bufSend=str.getBytes();
			packSend=new DatagramPacket(bufSend,bufSend.length,sendIP,portSend);
			sockSend=new DatagramSocket();
			System.out.println("me: "+str);
			sockSend.send(packSend);
		}
	}
	
	public void run(){
		while(true){
			bufRecv=new byte[MAX_LEN];
			packRecv=new DatagramPacket(bufRecv,MAX_LEN);
			try{sockRecv=new DatagramSocket(portRecv);}catch(Exception e){}
			try{sockRecv.receive(packRecv);}catch(Exception e){}
			System.out.println("other: "+new String(packRecv.getData()).trim());
		}
	}
	
	public static void main(String[] args) throws Exception{
		@SuppressWarnings("resource")
		Scanner cin=new Scanner(new BufferedInputStream(System.in));
		System.out.println("input your ReceivePort: ");
		portRecv=cin.nextInt();
		System.out.println("input your SendPort: ");
		portSend=cin.nextInt();
		System.out.println("input your SendIP: ");
		sendIP=InetAddress.getByName(cin.next());
		System.out.println("Connected...");
		new TmpMain();
	}
}

發佈了64 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章