我想编一个简单的纯Java的tcp,让两台计算机实现通讯,可就是老出问题,谁有简单的源码麻烦共享一下。不用太复杂,就发送和接受无需其他功能,能看懂、运行就行,谢谢!!!

解决方案 »

  1.   

    服务器代码:package com;import java.net.ServerSocket;public class Server {
    public static void main(String[] args) {
    try {
    //启动服务,监听端口10001
    ServerSocket serverSocket = new ServerSocket(10001);
    //在无请求时阻塞,在有请求时为每个请求创建新的连接实例
    while (true)
    //创建新的连接实例
    new ServerInstance(serverSocket.accept()).run();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }服务器实例代码:package com;import java.io.BufferedInputStream;
    import java.io.IOException;
    import java.net.Socket;public class ServerInstance extends Thread {
    Socket socket; public ServerInstance(Socket socket) {
    this.socket = socket;
    }

    /* (non-Javadoc)
     * 线程运行实际内容
     * @see java.lang.Thread#run()
     */
    @Override
    public void run() {
    try {
    BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
    while (true) {
    try {
    if (bis.available() > 0) {
    byte[] bs = new byte[1024];
    bis.read(bs);
    String str = new String(bs);
    System.out.println(str);
    //判断客户端传入信息是否为end,如果是则结束该线程
    if(str.startsWith("end")){
    System.out.println("End cmd from client!");
    return;
    }
    }
    sleep(1000);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    } catch (IOException e1) {
    e1.printStackTrace();
    } finally{
    try {
    socket.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }
    }客户端代码:package com;import java.io.BufferedOutputStream;
    import java.io.IOException;
    import java.net.Socket;
    import java.net.UnknownHostException;public class Client {
    public static void main(String[] args) throws UnknownHostException, IOException {
    //创建新的连接实例
    Socket socket = new Socket("192.168.0.1", 10001);
    //获得socket的输出流,用于输出
    BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
    //对socket写入信息end,即,对服务器端发送信息
    bos.write("end".getBytes());
    //使发送信息生效
    bos.flush();
    }
    }
      

  2.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  3.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  4.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  5.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  6.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  7.   

    怎么运行啊,我先运行了Server,再运行client,之后就打出了end和一串小方格,再就打出了End cmd from client!。这个程序到底应该怎么用啊,再麻烦你教教我,说具体点!!谢谢!!!
      

  8.   

    请参考这里的代码
    不过需要登陆,你不愿意注册的话,可以用游客身份!
     http://www.java2000.net/forumdisplay.jsp?fid=70