当前位置:主页   - 电脑 - 程序设计 - JAVA
java socket点对点以及点对面编程实例
来源:网络   作者:   更新时间:2012-06-10
收藏此页】    【字号    】    【打印】    【关闭

  和socket编程有关的几个类:

  InetAddress

  Socket:用在客户端

  ServerSocket:用在服务器端

  一。点对点通信

  服务器端:

package server;
import java.io.*;
import java.net.*;
public class Server {
private int port;
public Server(int port){
  this.port=port;
  start();
}
//将从客户端收到的信息转化为大写的
public String process(String line){
  return line.toUpperCase();
}
public void start(){
  try{
    //根据端口创建套接字
    ServerSocket myscoket=new ServerSocket(port);
    //显示连接信息
    System.out.println("服务器启动完成,监听端口在"+port);
    System.out.println("正在等待客户连接.........");
    //挂起等待客户的请求
    Socket connection=myscoket.accept();
        //测试
        System.out.println("客户发来连接请求.........");
    //获取读取客户端的数据流
    BufferedReader in=new BufferedReader(new InputStreamReader(connection.getInputStream()));
    //获取写往客户端的数据输出流,true表示自动刷新
    PrintWriter out=new PrintWriter(connection.getOutputStream(),true);
    //向客户发送欢迎的信息
    out.println("您好,服务器连接成功!");
    out.println("输入bye断开与服务器的连接");
    boolean done=false;
    while(!done){
      //读取客户端的内容
      String line=in.readLine();
      if(line==null){
        done=true;
      }else{
        //从服务器端显示客户端发送的信息
        System.out.println("从客户端来的内容"+line);
        //信息处理
        String message=process(line);
        //向客户端发送信息
        out.println("从服务器端口发送的信息"+message);
        if(line.trim().equals("BYE"))
          done=true;
      }
    }
    //关闭通信
    connection.close();
  }catch(Exception e){
    System.out.println(e);
  }  
}
}
package server;
public class ServerDemo {
  /**
  * @param args
  */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
if(args.length!=1){
  System.out.println("运行方式:java Server <端口号>");
  return;
}
try{
  //获得端口号
  int port=Integer.parseInt(args[0]);
  Server myserver=new Server(port);
}catch(Exception e){
  System.out.println(e);
}
  }
}

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明