第10章 网络编程 03_TCP_Socket_二

第10章 网络编程 03_TCP_Socket_2

鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.9.5)



几个示例的小程序

TestServer.java/TestClient.java

// TestServer.java

/*   范例名称:简单的Server/Client程序
 *   源文件名称:TestServer.java/TestClient.java
 *   要点:
 *       1.  Java Socket编程步骤;
 *       2.  Socket/ServerSocket类的用法;
 *       3.  通过Socket对象可以获得通信对方Socket的信息
 */
import java.net.*;
import java.io.*;

public class TestServer {
	public static void main(String args[]) {
		try
		{
			ServerSocket s = new ServerSocket(8888);
			while(true) {
				Socket s1 = s.accept();
				OutputStream os = s1.getOutputStream();
				DataOutputStream dos = new DataOutputStream(os);
				dos.writeUTF("Hello," + s1.getInetAddress() +
					" port #" + s1.getPort() + " bey-bey!" );
				dos.close();
				s1.close();
			}
		}
		catch (IOException e)
		{
			e.printStackTrace();
			System.out.println("程序运行错误" + e);
		}
	}
}





//TestClient.java

/*   范例名称:简单的Server/Client程序
 *   源文件名称:TestServer.java/TestClient.java
 *   要点:
 *       1.  Java Socket编程步骤;
 *       2.  Socket/ServerSocket类的用法;
 *       3.  通过Socket对象可以获得通信对方Socket的信息
 */
import java.net.*;
import java.io.*;

public class TestClient {
	public static void main(String args[]) {
		try
		{
			Socket s1 = new Socket("127.0.0.1", 8888);
			InputStream is = s1.getInputStream();
			DataInputStream dis = new DataInputStream(is);
			System.out.println(dis.readUTF());
			dis.close();
			s1.close();
		}
		catch (ConnectException connExc)
		{
			connExc.printStackTrace();
			System.out.println("服务器连接失败!");
		}
		catch( IOException e) {
			e.printStackTrace();
		}
	}
}

TestSockServer.java/TestSockClient.java

// TestSockServer.java

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

public class TestSockServer {
	public static void main(String args[]) {
		InputStream in = null;
		OutputStream out = null;
		try
		{
			ServerSocket ss = new ServerSocket(5888);
			Socket socket = ss.accept();
			in = socket.getInputStream();
			out = socket.getOutputStream();
			DataInputStream dis = new DataInputStream(in);
			DataOutputStream dos = new DataOutputStream(out);
			String s = null;
			if((s = dis.readUTF()) != null) {
				System.out.println(s);
				System.out.println("from: " + socket.getInetAddress());
				System.out.println("port: " + socket.getPort());
			}
			dos.writeUTF("hi, hello");
			dos.close();
			dis.close();
			socket.close();
		}
		catch(ConnectException e) {
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}


// TestSockClient.java

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

public class TestSockClient {
	public static void main(String args[]) {
		try
		{
			Socket socket = new Socket("localhost", 5888);
			InputStream in = null;
			OutputStream out = null;
			in = socket.getInputStream();
			out = socket.getOutputStream();
			DataInputStream dis = new DataInputStream(in);
			DataOutputStream dos = new DataOutputStream(out);
			dos.writeUTF("hey");
			String s = null;
			if((s = dis.readUTF()) != null) {
				System.out.println(s);
			}
			dos.close();
			dis.close();
			socket.close();
		}
		catch (UnknownHostException e)
		{
			e.printStackTrace();
		}
		catch(IOException e) {
			e.printStackTrace();
		}
	}
}