⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clientsocketdemo.java

📁 java scoket通信的源程序
💻 JAVA
字号:
import java.net.*;
import java.io.*;
public class ClientSocketDemo 
{
	//声明客户端Socket对象socket
	Socket socket = null;
	
	//声明客户器端数据输入输出流
    DataInputStream in;
    DataOutputStream out;
    
    //声明字符串数组对象response,用于存储从服务器接收到的信息
    String response[];

    //执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745
	public ClientSocketDemo()   
	{   
		try
		{
			//创建客户端socket,服务器地址取本地,端口号为10745
			socket = new Socket("localhost",10745);
			
			//创建客户端数据输入输出流,用于对服务器端发送或接收数据
            in = new DataInputStream(socket.getInputStream());
            out = new DataOutputStream(socket.getOutputStream());
            
            //获取客户端地址及端口号
            String ip = String.valueOf(socket.getLocalAddress());
            String port = String.valueOf(socket.getLocalPort());
            
            //向服务器发送数据
            out.writeUTF("Hello Server.This connection is from client.");
            out.writeUTF(ip);
            out.writeUTF(port);
            
            //从服务器接收数据
            response = new String[3];
            for (int i = 0; i < response.length; i++) 
            {
            	response[i] = in.readUTF();
                System.out.println(response[i]);				
			}     
		}
		catch(UnknownHostException e){e.printStackTrace();}
		catch(IOException e){e.printStackTrace();}
	}
	
	//执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745
	public ClientSocketDemo(String hostname)
	{
		try
		{
			//创建客户端socket,hostname参数指定服务器地址,端口号为10745
			socket = new Socket(hostname,10745);
            in = new DataInputStream(socket.getInputStream());
            out = new DataOutputStream(socket.getOutputStream());
            
            String ip = String.valueOf(socket.getLocalAddress());
            String port = String.valueOf(socket.getLocalPort());
            
            out.writeUTF("Hello Server.This connection is from client.");
            out.writeUTF(ip);
            out.writeUTF(port);
            
            response = new String[3];
            for (int i = 0; i < response.length; i++) 
            {
            	response[i] = in.readUTF();
                System.out.println(response[i]);				
			} 
		}
		catch(UnknownHostException e){e.printStackTrace();}
		catch(IOException e){e.printStackTrace();}
	}
	
	//执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址
	//第一个参数serverPort指定服务器端口号
	public ClientSocketDemo(String hostname,String serverPort)
	{
		try
		{
			socket = new Socket(hostname,Integer.parseInt(serverPort));
            in = new DataInputStream(socket.getInputStream());
            out = new DataOutputStream(socket.getOutputStream());
            
            String ip = String.valueOf(socket.getLocalAddress());
            String port = String.valueOf(socket.getLocalPort());
            
            out.writeUTF("Hello Server.This connection is from client.");
            out.writeUTF(ip);
            out.writeUTF(port);
            
            response = new String[3];
            for (int i = 0; i < response.length; i++) 
            {
            	response[i] = in.readUTF();
                System.out.println(response[i]);				
			} 
		}
		catch(UnknownHostException e){e.printStackTrace();}
		catch(IOException e){e.printStackTrace();}
	}
	
	public static void main(String[] args) 
	{
		String comd[] = args;
		if(comd.length == 0)
		{
			System.out.println("Use localhost(127.0.0.1) and default port");
			ClientSocketDemo demo = new ClientSocketDemo();	
		}
		else if(comd.length == 1)
		{
			System.out.println("Use default port");
			ClientSocketDemo demo = new ClientSocketDemo(args[0]);	
		}
		else if(comd.length == 2)
		{
			System.out.println("Hostname and port are named by user");
			ClientSocketDemo demo = new ClientSocketDemo(args[0],args[1]);	
		}
		else System.out.println("ERROR");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -