JAVA TCP/IP 同步传递消息 初步 学习

 

TCPServer.java:

import java.net.*; // TCP/IP Socket编程所用包
import java.io.*;

public class TCPServer{
    public static void main( String[] args ) throws Exception {
        ServerSocket ss = new ServerSocket(6666); // 新申请一个sever的端口, 一般用1024以上,因为之下的可能会被系统随时调用.
        while(true){
            Socket s = ss.accept(); // 插口接受信息. 是阻塞方式的, 如果没有就会一直等待
            // 得异步方式的来做, 否则这样的话 就会浪费时间
            System.out.println("A client connected!");
            InputStream is = s.getInputStream(); // 接受消息
            DataInputStream dis = new DataInputStream(is);
            System.out.println(dis.readUTF());  // 打印从客户端发来的消息, 当然readUTF也是阻塞式的, 没有则一直等待.
          // readUTF 是阻塞式的..
          dis.close(); // 关闭数据输入流
          s.close();   // 关闭当前的端口..
        }
    }
}

 

TCPCllient.java:

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

public class TCPClient {
    public static void main( String[] args ) throws Exception{
        Socket s = new Socket("127.0.0.1", 6666);
        // Socket(String host, int port); server的ip, 和对应的端口号. 以区分具体主机上的某个程序..

        // 数据出处, 从端口的outputstream上向外送数据
        OutputStream os = s.getOutputStream();
        //Thread.sleep(30000); // 这个为了测试, readUTF是阻塞式的
        DataOutputStream dos = new DataOutputStream(os);
        dos.writeUTF("hello server!");
        dos.flush();
        dos.close();
        s.close();
    }
}

 

JAVA已经提供了异步式的TCP/IP编程. 这个是同步方式的. 简单的基础的通信..聊以参考.

posted on 2010-08-22 12:51  amojry  阅读(1948)  评论(0编辑  收藏  举报