socket编程的一个简单的hello world程序

本文通过两个简单的Java程序实例介绍如何实现客户端与服务器之间的Socket连接及数据传输,包括创建Socket连接、发送与接收字符串等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些理论的东西,我在这里一概不提,我们先看例子程序,关于理论的部分,我会在后续的博客中会进行详细的说明。

首先我们来看一个socket的一个简单的hello world程序,

我们首先来完成第一个需求:

(1) 让客户端和服务器端建立起连接

那么我们必须要有一个客户端程序(TCPClient),一个服务器端程序(TCPServer),我们的项目结构如下:

代码思想: 编写socket程序和其他程序不一样,关于我们socket程序,服务端和客户端代码需要同时编写,但是运行的时候,必须先要运行服务器端代码,然后再运行客户端代码,这是因为客户端是请求的发起者,服务器端是请求的接受者,只有接受者是活跃的状态,请求发起才具有实际的意义。

package com.niepengfei.server;

import java.net.ServerSocket;

public class TCPServer {

    public static void main(String[] args) throws Exception {
		
    	ServerSocket ss = new ServerSocket(6666);
        Socket s = ss.accept();
        System.out.println("A client connect.");
    }
		
}

package com.niepengfei.client;

import java.net.Socket;


public class TCPClent {
	
    public static void main(String[] args) throws Exception {
    	Socket s = new Socket("127.0.0.1", 6666);
    }
    
}

以上代码的含义如下:

我们首先运行TCPServer:


再运行TCPClient,(请注意控制台)


(2) 现在客户端和服务器端已经建立起连接了,那么现在我们让客户端向服务器端传入一段字符串。

package com.niepengfei.client;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;


public class TCPClent {
	
    public static void main(String[] args) throws Exception {
    	Socket s = new Socket("127.0.0.1", 6666);
    	OutputStream out = s.getOutputStream();
    	DataOutputStream dos = new DataOutputStream(out);
    	dos.writeUTF("hello server.");
    	dos.flush();
    	dos.close();
    	s.close();
    }
    
}


package com.niepengfei.server;

import java.io.DataInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {

    public static void main(String[] args) throws Exception {
		
    	ServerSocket ss = new ServerSocket(6666);
    	while(true){
    		Socket s = ss.accept();
        	System.out.println("A client connect.");
        	InputStream input = s.getInputStream();
        	DataInputStream dai = new DataInputStream(input);
        	System.out.println(dai.readUTF());
    	}
    }
		
}

运行服务器端:


运行客户端(注意控制台):


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值