Socket与ServerSocket之间的通讯

本文通过一个简单的UDP客户端和服务端实例,展示了如何使用Java进行网络通信。客户端可以不断向服务器发送消息,而服务器则能够持续接收这些信息并打印出来。此例有助于理解Socket的基本工作原理。

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

Socket与ServerSocket之间的通讯
socket是我们网络编程需要用到的编程接口(API),对TCP/IP也要提供可供程序员所做网路开发所用的接口,也就是Socket编程接口;HTTP是轿车,提供了封装或显示数据具体形式;Socket是发动机, 提供了网络通信的能力。有对Socket不怎么熟悉的小伙伴,可以查一下百度。

引用块内容
package person;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
* 使用udp协议实现可以一直发送的数据
* 这里是客户端给我本机的服务器发信息
*
* @author Administrator
*
*/
public class SendSocket {
public static void main(String[] args) throws IOException {

    DatagramSocket socket = new DatagramSocket();

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String line = null;

    while ((line = br.readLine()) != null) {
        if ("over".equals(line))
            break;
        // 把读取的一行数据弄成数据报包
        byte[] data = line.getBytes();
        DatagramPacket packet = new DatagramPacket(data, data.length,
                //这里传上自己的ip地址,其他人的我没有试,大家可以尝试一下;还有对应的端口号(可以随便输)。
                InetAddress.getByName("这里输入ip地址"), 55555);
        socket.send(packet);
    }
}

}

package person;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
* 使用udp协议实现可以一直接收的数据
* 这里是服务器接收客户端发送的信息
*
* @author Administrator
*
*/
public class ReceiveSocket {
public static void main(String[] args) throws IOException {

    //得到识别码
    DatagramSocket socket = new DatagramSocket(55555);

    while (true) {

        byte[] arr = new byte[1024];
        DatagramPacket packet = new DatagramPacket(arr, arr.length);

        socket.receive(packet);

        String content = new String(packet.getData(), 0, packet.getLength());

        String ip = packet.getAddress().getHostAddress();
        System.out.println(ip + ":" + content);
    }
    //这里服务就不要关闭了,关闭了就不能连接客户端和接收信息了
    // socket.close();
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值