java如何实现udp连接_Java 实现Socket,和UDP连接的一个样例

【socket】

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.UnknownHostException;

public class TestSocket {

public static void main(String[] args) {

TestSocket ts=new TestSocket();

Server s=ts.new Server();

Client c=ts.new Client();

s.start();

c.start();

}

class Server extends Thread{

public void run(){

try {

//server socket

ServerSocket ss=new ServerSocket(8888);

Socket s=ss.accept();

OutputStream os=s.getOutputStream();

DataOutputStream dos=new DataOutputStream(os);

dos.writeUTF("Server");

InputStream is=s.getInputStream();

DataInputStream dis=new DataInputStream(is);

String iString=dis.readUTF();

System.out.println("Server:"+iString);

dos.close();

os.close();

dis.close();

is.close();

s.close();

ss.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

class Client extends Thread{

public void run(){

try {

//client socket

Socket s=new Socket("127.0.0.1",8888);

OutputStream os=s.getOutputStream();

DataOutputStream dos=new DataOutputStream(os);

dos.writeUTF("Client");

InputStream is=s.getInputStream();

DataInputStream dis=new DataInputStream(is);

String iString=dis.readUTF();

System.out.println("Client:"+iString);

dos.close();

os.close();

dis.close();

is.close();

s.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

【udp】

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

public class TestUDP {

public static void main(String args[]){

TestUDP tUDP=new TestUDP();

tUDP.new Server().start();

tUDP.new Client().start();

} class Server extends Thread{  public void run(){   String sendStr="send";      try {    InetAddress ia = InetAddress.getByName("localhost");    DatagramSocket sds=new DatagramSocket();    DatagramPacket sdp=new DatagramPacket(sendStr.getBytes(),sendStr.length(),ia,5555);    sds.send(sdp);         sds.close();   } catch (SocketException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }   } }  class Client extends Thread{  public void run(){      try {    byte b[]=new byte[1024];        DatagramSocket rds=new DatagramSocket(5555);    DatagramPacket rdp=new DatagramPacket(b,1024);    rds.receive(rdp);        System.out.println("receive:"+new String(b,0,rdp.getLength()));        rds.close();       } catch (SocketException e) {    e.printStackTrace();   } catch (IOException e) {    e.printStackTrace();   }   } }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值