您的位置:首页 > 理论基础 > 计算机网络

socket网络编程一些理解(未涉及代码)

2014-02-06 19:28 281 查看
从一些问题开始阐述我所理解的socket编程(基本)

---------------------------------------------------------------------------------------------------------------

1,socket 是什么?

socket 是一种网络中通信的概念。一种方式方法。利用此概念就能够设计出网络中互相访问的进程。

2,socket 解决的问题是什么?

网络间进程通信。(一台计算机要想访问另一台(网络可达)计算机,就必须通过本地进程访问另一端的一个进程)

3,网络中完全不相干的进程如何确定对方?

ip地址,协议,端口,标识了(网络中计算机)进程,网络中的进程通信就可以利用这个标志与其它进程进行交互。

4,网络中连接的模式?

绝大多数都是以 Client—Server模式。

.....(未完待续)

如果要想学好unix编程,就必须接受unix的哲学理念

---------------------------------------------------------------------------------------------------------------

unix的哲学理念其中之一就是 “一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。

Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

.....(未完待续)

知识是零散的,非要组合便—>面目全非

---------------------------------------------------------------------------------------------------------------

这一切的一切就是利用一些函数组合实现不同功能,达到预期目的。

要想学好用这些函数,就必须掌握好函数的返回类型形参列表

1,双方建立连接

服务器端先初始化(socket),然后与端口绑定(bind),对端口进行监听(listen),调用(accept)阻塞,等待客户端连接。

(socket,bind,listen,这三个函数能够在服务端建立起一块区域,使得网络中其他主机可以访问)

(阻塞的概念可以理解为等待直到为止

客户端初始化一个(socket),然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。

2,数据交互

客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。

在unix中,主要就是i/o操作。用俗话说就是客户端写一个,服务器端读一个,服务器端读完了后写一个处理过的数据,客户端读取此处理过的。

这个过程循环,就是服务器的运行过程。

socket经典介绍图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: