- 什么是Socket
三次握手
四次挥手
socket本身就有“插座”的意思,因此用来形容网络连接的一对一关系,为TCP/IP协议设计的应用层编程接口称为socket API。 我的理解就是Socket就是该模式的一个实现:即socket是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。
Socket()函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。
- Socket的应用
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
那么Socket提供了那些函数呢?
使用socket()函数创建套接字
int socket(int af, int type, int protocol);
服务器端要用 bind() 函数将套接字与特定的IP地址和端口绑定起来
int bind(int sock, struct sockaddr *addr, socklen_t addrlen);
connect() 函数用来建立连接
int connect(int sock, struct sockaddr *serv_addr, socklen_t addrlen);
通过** listen() 函数**可以让套接字进入被动监听状态
int listen(int sock, int backlog);
通过 accept() 函数来接收客户端请求
int accept(int sock, struct sockaddr *addr, socklen_t *addrlen);
- Java - Hello/Hi聊天程序
服务器端
1.服务器端用ServerSocket类来创建socket对象。
2.使用accept方法监听
3.建立连接后使用输入输出流进行聊天
4.释放资源
客户端:
1.使用Socket类创建爱你客户端的Socket对象
2.通过IP地址和端口号建立连接
3.通过输入输出流进行通信
4.释放资源