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();
  }
}

}


以上只是实现了一个简单的连接,首先客户端连接到服务端后,先发出一个问候,然后服务端也返回一个问候信息!

你可能感兴趣的:(java,编程,socket,dos,OS)