疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java socket通信


 

       开发原理:

  服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

  客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

  package com.umesage.stop;

  import java.net.*;

  import java.io.*;

  public class Server {

  private ServerSocket ss;

  private Socket socket;

  private BufferedReader in;

  private PrintWriter out;

  public Server() {

  try {

  ss = new ServerSocket(10000);

  while (true) {

  socket = ss.accept();

  in = new BufferedReader(new InputStreamReader(socket

  .getInputStream()));

  out = new PrintWriter(socket.getOutputStream(), true);

  String line = in.readLine();

  System.out.println("you input is :" + line);

  out.println("you input is :" + line);

  out.close();

  in.close();

  socket.close();

  ss.close();

  }

  } catch (IOException e) {

  }

  }

  public static void main(String[] args) {

  new Server();

  }

  }

  package com.umesage.stop;

  import java.io.*;

  import java.net.*;

  public class Client {

  Socket socket;

  BufferedReader in;

  PrintWriter out;

  public Client() {

  try {

  socket = new Socket("127.0.0.1", 10000);

  // in = new BufferedReader(new InputStreamReader(socket

  // .getInputStream()));

  out = new PrintWriter(socket.getOutputStream(), true);

  out.println("Please Stop!");

  out.close();

  // in.close();

  socket.close();

  } catch (IOException e) {

  }

  }

  public static void main(String[] args) {

  new Client();

  }

  }