stboy_88 发表于 2013-1-28 19:40:52

TCP Socket网络编程

网络编程
   两种方式:

         TCP 面向有连接的,可靠的实现

         UDP没有连接的,不可靠的实现,有可能数据丢包.

一个TCP的实现示例:

首先,编写服务端的socket,代码如下:

    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;

    public class TCPServer {
      public static void main(String[] args) {
      try {
          ServerSocket serverSocket = new ServerSocket(8888);
          Socket socket = serverSocket.accept();
          InputStream is = socket.getInputStream();
          DataInputStream dis = new DataInputStream(is);
          String str = dis.readUTF();
          System.out.println(str);
          DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
          dos.writeUTF("Hello,Client Socket!----------");
          dos.flush();
          dos.close();
          dis.close();
          is.close();
          socket.close();
          serverSocket.close();
         } catch (Exception e) {
         e.printStackTrace();
      }

    }

    }

其次,实现客户断的代码如下:

import java.net.*;
import java.io.*;

public class TCPClient {

/**
* @param args
*/
public static void main(String[] args) {
try {
   Socket s = new Socket("localhost", 8888);
   OutputStream os = s.getOutputStream();
   DataOutputStream dos = new DataOutputStream(os);
   dos.writeUTF("Hello,ServerSocket");
   dos.flush();
   DataInputStream dis = new DataInputStream(s.getInputStream());
   Thread.sleep(5000);
   System.out.println(dis.readUTF());
   dis.close();
   os.close();
   s.close();
} catch (Exception e) {
   e.printStackTrace();
}
}

}


以上只是实现了一个简单的连接,首先客户端连接到服务端后,先发出一个问候,然后服务端也返回一个问候信息!
页: [1]
查看完整版本: TCP Socket网络编程