一个socket的基础例子

本文介绍了Socket编程的基础,包括socket(), bind(), listen(), accept(), send(), sendto(), recv(), recvfrom()等函数的用途。在TCP和UDP协议中的应用进行了区分,并给出了TCP和UDP协议下客户端和服务器的基本流程。通过示例代码,帮助读者更好地理解和掌握Socket编程。" 103859801,2564739,C语言中的文件操作:fseek、fwrite和fread详解,"['C语言', '文件处理', '数据输入输出']
摘要由CSDN通过智能技术生成

我不得不说socket编程对于我来说是很复杂的,以前总是说socket,但到现在来说还是没有把他弄懂,即使当时记得了但过了几天又忘记了,所以需要常常看才能牢记。

socket编程的基础函数有socket(),bind(), listen(),accept(),send(),sendto(),recv(),recvfrom()根据客户端还是服务端不一样,针对udp,tcp又是不一样的,先对这几个函数进行说明

socket()------该函数用于建立一个socket连接,可以指定socket类型等信息,在建立socket连接之后,可以对sockaddr或sockaddr_in结构体进行初始化,来保存所建立的socket 

                       地址信息

bind()---------用于将本地ip绑定到端口号,绑定其他ip不能成功,主要用于TCP中,在upd中则没有必要

listen()--------在创建套接字和绑定地址之后需要在该套接字上接受新的请求,listen()可以用来创建一个等待队列,用于存放未处理的客户端请求

accept()-------服务端调用listen之后,调用此函数等待并接收客户端的请求,通常他从listen()函数创建的等待队列中取出第一个未处理的连接请求

connetc()------在TCP中用于bind()之后的客户端用于与服务器建立连接,而在UDP中由于没有bind()函数,这个connect函数有点类似于bind()函数的作用

recv(),recv()---用于数据的发送和接收,在udp中可以在connet()建立连接之后再使用

sendto(),recvfrom()---在TCP中作用等同于send(),recv(),而在UDP中可以用在之前没有使用connect()的情况,这两个函数可以自动寻找指定地址并进行连接

服务器和客户端使用TCP协议的流程如下:                                                   

对于客户端有时不需要进行bind()调用,http://blog.csdn.net/smilestone322/article/details/8449165

服务器和客户端使用UDP协议的流程如下:


下面是各个函数的使用语法:

socket()使用语法:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值