Java Socket UDP 실시 간 채 팅 사례 구현

2912 단어 JAVA
최근 에는 Socke 와 관련 된 것 을 보고 있 습 니 다. 평소에 일 할 때 이 물건 을 사용 하 는 것 이 적 기 때문에 기록 해 보 세 요. 나중에 돌 이 켜 볼 수 있 습 니 다.
UDP 프로 토 콜 은 서버 가 정상적으로 작 동 하 든 상 관 없 이 데이터 만 보 내 는데 효율 이 높 고 안전 하지 않 으 며 가방 을 잃 어 버 리 기 쉬 운 것 이 특징 이다.
잔말 말고 코드 를 바로 달 아 라.
클 라 이언 트:
package com.tz.socket.client;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

/**
 * 

Title: AskClient

*

Description:

*

Company:

* @author UU * @date 2017 6 28 9:29:36 */ public class AskClient { private static final int SERVER_PORT = 8888; private static final int CLIENT_PORT = 6666; public static void main(String[] args) throws Exception { // ( ) DatagramSocket socket = new DatagramSocket(SERVER_PORT); // String msg = " ?"; // Scanner scanner = new Scanner(System.in); while (true) { String msg = scanner.nextLine(); DatagramPacket packet = new DatagramPacket(msg.getBytes(), msg.getBytes().length, InetAddress.getLocalHost(), CLIENT_PORT); // socket.send(packet); if ("88".equals(msg)) { break; } // byte[] b = new byte[1024]; DatagramPacket packet2 = new DatagramPacket(b, b.length, InetAddress.getLocalHost(), CLIENT_PORT); socket.receive(packet2); System.out.println(" :"+new String(b,0,packet2.getLength())); } socket.close(); } }

 서버:
package com.tz.socket.server;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

/**
 *    
 * 

Title: AskServer

*

Description:

*

Company:

* @author UU * @email [email protected] * @phone 18317183091 * @date 2017 6 28 10:24:42 */ public class AskServer { private static final int SERVER_PORT = 6666; private static final int CLIENT_PORT = 8888; public static void main(String[] args) throws Exception { // ( ) DatagramSocket server = new DatagramSocket(SERVER_PORT); Scanner scanner = new Scanner(System.in); while(true){ // , b byte[] b = new byte[1024]; DatagramPacket packet = new DatagramPacket(b, b.length,InetAddress.getLocalHost(),CLIENT_PORT); server.receive(packet); System.out.println(" :"+new String(b,0,packet.getLength())); // String callBack = " !"; String callBack = scanner.nextLine(); DatagramPacket packet2 = new DatagramPacket(callBack.getBytes(), callBack.getBytes().length, InetAddress.getLocalHost(),CLIENT_PORT); server.send(packet2); if ("88".equals(callBack)) { break; } } server.close(); } }

사실 클 라 이언 트 와 서버 라 는 것 은 없습니다. 모든 종 류 는 클 라 이언 트 이자 서버 입 니 다. 그러나 실제 개발 에서 클 라 이언 트 가 서버 에 보 낸 다음 에 서버 에서 다른 클 라 이언 트 에 메 시 지 를 전달 하 는 과정 이 어야 합 니 다.

좋은 웹페이지 즐겨찾기