五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

使用UDP實現(xiàn)雙向交流的代碼

2020-04-19 10:50 作者:小垃圾kiki  | 我要投稿
package cn.jd.udp;

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;

/*
?* 發(fā)送端
?*/
public class TalkSend? implements Runnable {
?? ?private DatagramSocket client;
?? ?private BufferedReader reader;
?? ?private String toIP;
?? ?private int toPort;
?? ?public TalkSend(int port,String toIP,int toPort) {
?? ??? ?this.toIP=toIP;
?? ??? ?this.toPort=toPort;
?? ??? ?try {
?? ??? ??? ?client=new DatagramSocket(port);
?? ??? ??? ?reader=new BufferedReader(new InputStreamReader(System.in));
?? ??? ?} catch (SocketException e) {
?? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ?}
?? ?@Override
?? ?public void run() {
?? ??? ?while(true) {
?? ??? ??? ?String data;
?? ??? ??? ?try {
?? ??? ??? ??? ?data = reader.readLine();
?? ??? ??? ??? ?byte[] datas=data.getBytes();//字符串轉成字節(jié)數(shù)組
?? ??? ??? ??? ?//3.封裝成DatagramPacket包裹,需要指定目的地
?? ??? ??? ??? ?DatagramPacket packet
?? ??? ??? ??? ??? ??? ??? ??? ?=new DatagramPacket(datas,0,datas.length,new InetSocketAddress(this.toIP,this.toPort));
?? ??? ??? ??? ?//4.發(fā)送包裹send(DatagramPacket p)
?? ??? ??? ??? ?client.send(packet);
?? ??? ??? ??? ?if(data.equals("bye")) {
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?} catch (IOException e) {
?? ??? ??? ??? ?// TODO Auto-generated catch block
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ?}
?? ??? ?//5.釋放資源
?? ??? ?client.close();
?? ??? ?
?? ?}

}

package cn.jd.udp;

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

/*
?* 接收端:使用面向?qū)ο蠓庋b(也就是加入屬性加入方法加入構造器)
?*/
public class TalkReceive implements Runnable {
?? ?private DatagramSocket server;
?? ?private String form;
?? ?public TalkReceive(int port,String from) {
?? ??? ?this.form=from;
?? ??? ?try {
?? ??? ??? ?server=new DatagramSocket(port);
?? ??? ?} catch (SocketException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ?}
?? ?
?? ?@Override
?? ?public void run() {
?? ??? ?while(true) {
?? ??? ??? ?//2.準備容器 封裝成DatagramPacket包裹
?? ??? ??? ?byte[]? container=new byte[1024*60];//最多接收60K
?? ??? ??? ?DatagramPacket packet=new DatagramPacket(container, 0,container.length);
?? ??? ??? ?//3.阻塞式接收包裹receive(DatagramPacket p)
?? ??? ??? ?try {
?? ??? ??? ??? ?server.receive(packet);//阻塞式
?? ??? ??? ??? ?byte[] datas=packet.getData();//4.分析數(shù)據(jù)
?? ??? ??? ??? ?int len=packet.getLength();
?? ??? ??? ??? ?String data=new String(datas,0,len);
?? ??? ??? ??? ?System.out.println(this.form+"說:"+data);
?? ??? ??? ??? ?if(data.equals("bye")) {
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?} catch (IOException e) {
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ?}
?? ??? ?//5.釋放資源
?? ??? ?server.close();
?? ??? ?
?? ?}

}

package cn.jd.udp;
/*
?* 加入多線程實現(xiàn)雙向交流,模擬在線咨詢
?*/
public class TalkStudent {
?? ?public static void main(String[] args) {
?? ??? ?new Thread(new TalkSend(7777,"localhost",9999)).start();//發(fā)送
?? ??? ?new Thread(new TalkReceive(8888,"老師")).start();//接收的端口是8888
?? ?}
}

package cn.jd.udp;

public class TalkTeacher {
?? ??? ?public static void main(String[] args) {
?? ??? ??? ?new Thread(new TalkReceive(9999,"學生")).start();//接收的端口是9999
?? ??? ??? ?new Thread(new TalkSend(5555,"localhost",8888)).start();//發(fā)送
?? ??? ?}
}

使用UDP實現(xiàn)雙向交流的代碼的評論 (共 條)

分享到微博請遵守國家法律
行唐县| 普格县| 海丰县| 托里县| 阿城市| 昌图县| 耒阳市| 大同市| 武宣县| 织金县| 平湖市| 黄龙县| 周宁县| 芷江| 泽库县| 嘉义市| 泰顺县| 如皋市| 白朗县| 安义县| 广西| 曲水县| 金川县| 新巴尔虎左旗| 华亭县| 甘孜县| 奉新县| 宜黄县| 拉萨市| 温州市| 资源县| 香河县| 平邑县| 浑源县| 金坛市| 雷波县| 达州市| 泽库县| 永胜县| 龙州县| 杭锦旗|