程序员自学之旅(六)网络编程入门

两种连接方式TCP和UDP
事例:
TCP Server端代码:
import java.io.*;
import java.net.*;
public class TestSockServer {
  public static void main(String[] args) {
    InputStream in = null;
    OutputStream out = null;
    try {
      ServerSocket ss = new ServerSocket(5888);
      Socket socket = ss.accept();
      in = socket.getInputStream();
      out = socket.getOutputStream();
      DataOutputStream dos = new DataOutputStream(out);
      DataInputStream dis = new DataInputStream(in);
      String s = null;
      if((s=dis.readUTF())!=null) {
          System.out.println(s);
          System.out.println("from: "+socket.getInetAddress());
          System.out.println("Port: "+socket.getPort());
        }
      dos.writeUTF("hi,hello");
      dis.close();
      dos.close();
      socket.close();
    } catch (IOException e) {e.printStackTrace();}
  }
}
TCP Client端代码:
import java.net.*;
import java.io.*;
public class TestSockClient {
  public static void main(String[] args) {
    InputStream is = null; OutputStream os = null;
    try {
      Socket socket = new Socket("localhost",5888);
      is = socket.getInputStream();
      os = socket.getOutputStream();
      DataInputStream dis = new DataInputStream(is);
      DataOutputStream dos = new DataOutputStream(os);
      dos.writeUTF("hey");
      String s = null;
      if((s=dis.readUTF())!=null);
          System.out.println(s);
      dos.close();
      dis.close();
      socket.close();
    } catch (UnknownHostException e) {
       e.printStackTrace();
    } catch (IOException e) {e.printStackTrace();}
  }
}
UDP传输:
server端:
import java.net.*;
import java.io.*;

public class TestUDPServer
{
    public static void main(String args[]) throws Exception
    {
        byte buf[] = new byte[1024];
        DatagramPacket dp = new DatagramPacket(buf, buf.length);
        DatagramSocket ds = new DatagramSocket(5678);
        while(true)
        {
            ds.receive(dp);
            ByteArrayInputStream bais = new ByteArrayInputStream

(buf);
            DataInputStream dis = new DataInputStream(bais);
            System.out.println(dis.readLong());
        }
    }
}
Client端:
import java.net.*;
import java.io.*;

public class TestUDPClient
{
    public static void main(String args[]) throws Exception
    {
        long n = 10000L;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeLong(n);
        
        byte[] buf = baos.toByteArray();
System.out.println(buf.length);
        
        DatagramPacket dp = new DatagramPacket(buf, buf.length,
                                        

       new InetSocketAddress("127.0.0.1", 5678)
                                        

       );
        DatagramSocket ds = new DatagramSocket(9999);
        ds.send(dp);
        ds.close();
        
    }
}

猜你喜欢

转载自blog.csdn.net/LJL_01/article/details/6834435