您的位置:首页 > 编程语言 > Java开发

Java 实现Socket,和UDP连接的一个样例

2010-04-02 17:20 537 查看
【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();
   } 
  }
 }
}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息