2020.2.28Java学习笔记——实时通信Socket实例

这篇博客介绍了Java Socket编程相比于C++的简便之处,强调Java在Socket连接前的准备工作更少,如不需要手动设置网络地址等。通过一个简单的Server和Client实例,展示了Java如何创建Socket并自动发起连接请求,同时指出在处理连续接收信息时的优化问题。
摘要由CSDN通过智能技术生成

Java学习笔记——实时通信Socket实例

最近新学习Java,尝试一下Java的Socket编程,发现确实比C++要简便。
Java的Socket编程相比于C++在封装方面更加完善,所以对于Socket连接前的准备工作要比C++少去很多步骤。对比C++的Socket编程就知道Java代码可精简太多。

C++Socket实例

首先是Sever端中,省去了初始化ws2_32.dll动态库和选择dll版本的过程(即调用WSASTARTUP的过程)。其次是不需要手动设置sockaddr的网络地址等信息,也不需要bind地址信息的流程,在Java中服务端只需要设定监听的端口号(port)就可以打开Sever端,十分方便。接下来与Client端对接时也只需要一个accept函数来阻塞等待客户端的连接请求,相当于C++中的listen和accept的作用。

而在Client端中,网络地址信息这部分也只需要手动填入要通信的主机端的ip地址和端口号即可,在客户端中都不需要像C++那样调用connect函数,Java的Client端调用new Socket()函数创建套接字时就会自动发起连接请求,等于是创建Socket和连接Sever请求发送被封装在了同一个Socket()函数中。
(Java的Socket编程真的比C++能少写好多行)

Java Socket即时通讯实例:
Sever端:

import java.io.*;
import java.net.*;//导入socket所需的库
public class ServerSock {
   
    public static void main(String args[]) {
   
        try{
   
            ServerSocket server=null;
            try{
   
                //创建一个ServerSocket在端口4844监听客户请求
                server=new ServerSocket(4844);
            }catch(Exception e){
   
                e.printStackTrace();//出错,打印出错信息
            }
            Socket socket=null;
            try{
   
                //使用accept()阻塞等待客户请求,有客户请求到来则产生一个Socket对象,并继续执行
                socket=server.accept();
            }catch(Exception e)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值