자바 간이 랜 채 팅 기능 실현

본 논문 의 사례 는 자바 가 UDP 모드 로 채 팅 프로그램 을 작성 하 는 구체 적 인 코드 를 공유 하 였 으 며,구체 적 인 내용 은 다음 과 같 습 니 다.
Java 코드:

/* 
  UDP  ,         
        2  , 
      ,       
 
              ,     2 run   
                 
 
             ,    UI   
       
 
    9998 
    9999 
          ,               
 
[  ]:          
*/ 
import java.net.*; 
import java.io.*; 
class Demo 
{ 
 public static void main(String[] args) throws Exception 
 { 
  DatagramSocket sendSocket = new DatagramSocket(9998); //    
  DatagramSocket receSocket = new DatagramSocket(9999); //    
  new Thread(new MsgSend(sendSocket)).start();      //     
  new Thread(new MsgRece(receSocket)).start();      //     
 } 
} 
 
class MsgSend implements Runnable   //   
{ 
 private DatagramSocket dsock; 
 public MsgSend(DatagramSocket dsock) 
 { 
  this.dsock= dsock; 
 } 
 
 public void run() 
 { 
  BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); 
  String lineStr = null; 
  try 
  {     
   while(true) 
   { 
    lineStr = bufr.readLine(); 
    if(lineStr!=null) 
    { 
     if(lineStr.equals("over886")) 
     { 
      break; 
     } 
     else 
     { 
      byte[] dataBuf = lineStr.getBytes(); 
      DatagramPacket dataPack =  //     
      new DatagramPacket( dataBuf, 
                dataBuf.length, 
                InetAddress.getByName("192.168.1.255"), //   
                9999 //     
               ); 
      dsock.send(dataPack); 
     } 
    } 
   } 
   bufr.close(); 
   dsock.close(); 
  } 
  catch(Exception e) 
  { 
   throw new RuntimeException("    !"); 
  } 
 } 
} 
 
class MsgRece implements Runnable  //   
{ 
 private DatagramSocket dsock; 
 public MsgRece(DatagramSocket dsock) 
 { 
  this.dsock= dsock; 
 } 
 
 public void run() 
 { 
  try 
  { 
   while(true) 
   { 
     byte[] dataBuf = new byte[1024]; 
     DatagramPacket dataPack = new DatagramPacket(dataBuf,dataBuf.length); 
     dsock.receive(dataPack); //                
     String ip = dataPack.getAddress().getHostAddress(); 
     String data = new String(dataPack.getData(),0,dataPack.getLength()); 
     int port = dataPack.getPort(); 
     System.out.println();  
     System.out.println("  ip  "+ip+" <    >: "+port+"    "); 
     System.out.println(data);     
   } 
  } 
  catch(Exception e) 
  { 
   throw new RuntimeException("    !"); 
  } 
  finally 
  { 
   dsock.close(); 
  } 
 } 
} 

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기