国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

UDP實現(xiàn)實時聊天

2021-02-15 10:18 作者:忘魂兒  | 我要投稿

package com.studying.JavaNet.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;
import java.net.SocketException;

public class TalkSend implements Runnable{
? ?DatagramSocket datagramSocket=null;
? ?BufferedReader bufferedReader=null;
? ?private int toPort;//對方的ip和端口號
? ?private String toIP;
? ?private int fromPort;

? ?public TalkSend(int toPort, String toIP, int fromPort) {
? ? ? ?this.toPort = toPort;
? ? ? ?this.toIP = toIP;
? ? ? ?this.fromPort = fromPort;
? ? ? ?try {
? ? ? ? ? ?datagramSocket = new DatagramSocket(fromPort);
? ? ? ? ? ?bufferedReader = new BufferedReader(new InputStreamReader(System.in));

? ? ? ?} catch (SocketException e) {
? ? ? ? ? ?e.printStackTrace();
? ? ? ?}

? ?}

? ?@Override
? ?public void run() {
? ? ? ?while(true)//循環(huán)發(fā)送
? ? ? ?{
? ? ? ? ? ?try {
? ? ? ? ? ? ? ?String data = bufferedReader.readLine();
? ? ? ? ? ? ? ?byte[] datainf = data.getBytes();
? ? ? ? ? ? ? ?DatagramPacket datagramPacket = new DatagramPacket(datainf,0,datainf.length,new InetSocketAddress(this.toIP,this.toPort));
? ? ? ? ? ? ? ?datagramSocket.send(datagramPacket);
? ? ? ? ? ? ? ?if (data.equals("bye"))
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?}
? ? ? ? ? ?} catch (IOException e) {
? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ?}
? ? ? ?}

? ? ? ?datagramSocket.close();
? ?}
}

package com.studying.JavaNet.Chat;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class TalkReceive implements Runnable{
? ?DatagramSocket datagramSocket=null;
? ?private int port;
? ?private String msgFrom;
? ?public TalkReceive(int port,String msgFrom) {
? ? ? ?this.port = port;
? ? ? ?this.msgFrom=msgFrom;
? ? ? ?try {
? ? ? ? ? ?datagramSocket = new DatagramSocket(port);
? ? ? ?} catch (SocketException e) {
? ? ? ? ? ?e.printStackTrace();
? ? ? ?}
? ?}

? ?@Override
? ?public void run() {


? ? ? ?while(true)
? ? ? ?{
? ? ? ? ? ?try {
? ? ? ? ? ? ? ?byte[] container = new byte[1024];//接收
? ? ? ? ? ? ? ?DatagramPacket datagramPacket = new DatagramPacket(container,0,container.length);
? ? ? ? ? ? ? ?datagramSocket.receive(datagramPacket);//阻塞式接收包裹
? ? ? ? ? ? ? ?//斷開
? ? ? ? ? ? ? ?byte[] data = datagramPacket.getData();
? ? ? ? ? ? ? ?String recdata= new String(data, 0, data.length);
? ? ? ? ? ? ? ?System.out.println(msgFrom+":"+recdata);
? ? ? ? ? ? ? ?if (recdata.equals("leaving"))
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?break;
? ? ? ? ? ? ? ?}
? ? ? ? ? ?} catch (IOException e) {
? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ?}

? ? ? ?}
? ? ? ?datagramSocket.close();
? ?}
}

package com.studying.JavaNet.Chat;

public class TalkUserone {
? ?public static void main(String[] args) {
? ? ? ?//開啟兩個線程
? ? ? ?new Thread(new TalkSend(22,"localhost",33)).start();//設立自己的發(fā)送端口和到達端口
? ? ? ?new Thread(new TalkReceive(2233,"UserOne")).start();//設立自己的接收端口
? ?}
}

package com.studying.JavaNet.Chat;

public class TalkUserOther {
? ?public static void main(String[] args) {
? ? ? ? ? ?new Thread(new TalkSend(2233,"localhost",1215)).start();
? ? ? ? ? ?new Thread(new TalkReceive(22,"UserTwo")).start();
? ?}
}
//師從狂神,僅供學習使用,未經(jīng)允許不得轉(zhuǎn)載

UDP實現(xiàn)實時聊天的評論 (共 條)

分享到微博請遵守國家法律
陆川县| 太仓市| 汕头市| 阿瓦提县| 长沙县| 安陆市| 南昌县| 林甸县| 枣强县| 长武县| 大厂| 邵阳市| 舒城县| 潞城市| 萨嘎县| 当阳市| 康平县| 龙胜| 怀集县| 千阳县| 舞钢市| 外汇| 确山县| 体育| 宜黄县| 武威市| 镇江市| 桃园县| 泰州市| 资中县| 土默特左旗| 成武县| 黎川县| 从江县| 广宗县| 永新县| 阳山县| 亚东县| 黑水县| 镇沅| 吉林市|