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

歡迎光臨散文網(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)雙向交流的代碼的評論 (共 條)

分享到微博請遵守國家法律
将乐县| 葫芦岛市| 华安县| 江阴市| 凌源市| 文化| 天峨县| 昂仁县| 阿荣旗| 贵溪市| 马龙县| 长宁县| 志丹县| 山丹县| 鹤岗市| 依兰县| 威海市| 兖州市| 从江县| 尼玛县| 荥经县| 田阳县| 台东县| 崇信县| 边坝县| 龙州县| 房产| 大同县| 乌鲁木齐县| 广宁县| 常德市| 阳信县| 枣阳市| 博湖县| 浙江省| 循化| 嘉禾县| 东乌珠穆沁旗| 乌兰浩特市| 台南市| 兴义市|