最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
磐石市| 辽阳县| 巴南区| 仙桃市| 泸定县| 运城市| 五台县| 桃园市| 黑水县| 金沙县| 绵竹市| 象山县| 武宁县| 吉首市| 普陀区| 靖州| 交口县| 襄樊市| 江门市| 黄平县| 普洱| 海原县| 团风县| 天门市| 黑龙江省| 马龙县| 洛南县| 恭城| 玉树县| 静宁县| 峡江县| 上思县| 台州市| 郯城县| 刚察县| 漳州市| 安吉县| 东阳市| 舟山市| 醴陵市| 包头市|