udpclient.java

来自「ICQ聊天程序」· Java 代码 · 共 65 行

JAVA
65
字号
//UDPClient.java
import java.io.*;
import java.net.*;

public class UDPClient extends Thread {
		DatagramSocket datagramSocket;  //DatagramSocket对象 
        DatagramPacket inDataPacket; //接收数据包
        DatagramPacket outDataPacket; //发送数据包
        InetAddress ip,serverAddress; //对方IP地址
        
        
        byte[] msg = new byte[100]; //发送数据包的缓冲池,并包含要发送的数据
        String receivedMsg,sentMsg; //接收到的数据
        RegistFrame registFrame;
        PtpChatFrame frm;
        
    public void sentPtpMess(InetAddress ip,String str)  
    	throws IOException, UnknownHostException {
    	this.ip=ip;
		sentMsg=str;//要发送的信息
		datagramSocket = new DatagramSocket();
        serverAddress = InetAddress.getLocalHost();//获取服务器地址
    }
    
     public void run(){
        
		while(true){	
//        msg = new String ("Client>>>I am the client, please tell me the system time.").getBytes();
        msg = new String (ip+"@"+sentMsg).getBytes();		//发送对方地址,getByte()将String转变为byte类型
        
        outDataPacket = new DatagramPacket(msg, msg.length,serverAddress , 8001);//发送到服务器
        
        System.out.println (ip+"   对方ip");   //

        try{
    		datagramSocket.send (outDataPacket);//发送信息(私聊)
    	}catch (Exception e){System.out.println (e);}
        
        inDataPacket = new DatagramPacket(msg, msg.length);
        
        try{
    		datagramSocket.receive(inDataPacket);
    	}catch (Exception e){System.out.println (e);}
        receivedMsg = new String (inDataPacket.getData(), 0,  inDataPacket.getLength());
        System.out.println("地\n" + receivedMsg);
        frm.TAChat.append("he/she say:"+"\n");
        frm.TAChat.append(receivedMsg+"\n");
   		 }//while
        
        
//        datagramSocket.close();
    }

//    public static void main (String args[]) {
//        
//        try {
//             udpClient.sentPtpMess(serverAddress,"adf");
//        } catch (Exception e) {
//             System.out.println ("Exception occurred with socket.");
//             System.out.println (e);
//             System.exit (1);
//        }
//    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?