当前位置:  技术问答>linux和unix

谁能给我提供一个SCO UNIX下SOCKET通讯的例程,先谢

    来源: 互联网  发布时间:2015-01-12

    本文导语:  急需 | UNIX网络编程入门之一                UNIX网络编程入门       Unix是计算机使用的主流操作系统之一,TCP/IP是广为应用的互       连网协议,Unix为TCP/I P网络编程提供了一种...

急需

|
UNIX网络编程入门之一

       
       UNIX网络编程入门

      Unix是计算机使用的主流操作系统之一,TCP/IP是广为应用的互
      连网协议,Unix为TCP/I P网络编程提供了一种网络进程通信机制:套
      接字接口(Sockets Interface)。本文将介绍Un ix环境下套接字的基
      本概念及编程技术,并结合实例说明在Unix下如何用套接字实现客户
      机/服务器方式的进程通信。

      一、套接字简介
      套接字(Socket)是网络通信的基本操作单元,它提供了不同主机
      间进程双向通信的端点,这些进程在通信前各自建立一个Socket,并通
      过对Socket的读/写操作实现网络通信功能。
      套接字分为以下3种类型。

      1.字节流套接字
      这是最常用的套接字类型,TCP/IP协议簇中的TCP(Transport Con
      trol Protocol)协议使用此类接口,它提供面向连接的(建立虚电路)
      、无差错的、发送先后顺序一致的、包长度不限和非重复的网络信包
      传输。

      2.数据报套接字
      TCP/IP协议族中的UDP(User Datagram Protocol)协议使用此类
      接口,它是无连接的服务,以独立的信包进行网络传输,信包最大长度
      为32KB,传输不保证顺序性、可靠性和无重复性,它通常用于单个报文 
      传输或可靠性不重要的场合。
      3.原始数据报套接字
      提供对网络下层通讯协议(如IP协议)的直接访问,它一般不是提
      供给普通用户的,主要用于开发新的协议或用于提取协议较隐蔽的功
      能。

      二、套接字系统调用
      附表是Unix中套接字系统调用的简单说明。
      附表

      三、套接字编程方法
      这里将分别介绍面向连接协议的字节流套接字与非连接协议的数
      据报套接字的编程方法,因原始数据报套接字在实际工作中使用较少,
      在此不作讨论。
      不论何种套接字编程均采用客户机/服务器的协作模式,即由客户
      进程向服务器进程发出请求,服务器进程执行被请求的任务并将结果
      返回给客户进程。
      字节流套接字的服务进程和客户进程在通信前必须建立连接。建
      立连接及通信的步骤见图1。

      1.服务进程首先调用Socket()创建一个字节流套接字,并调用bin
      d()将服务器地址捆扎在该套接字上,接着调用listen()监听连接请求 
      ,随后调用accept()做好与客户进程建立连接的准备,无连接请求时,
      服务进程被阻塞;

      2.客户进程调用Socket()创建字节流套接字,然后调用connect()
      向服务进程发出连接请求;

      3.当连接请求到来后,服务进程被唤醒,生成一个新的字节流套接
      字,并用新套接字同客户进程的套接字建立连接,而服务进程最早生成
      的套接字则继续用于监听网络上的服务请求
      4.服务进程和客户进程通过调用read()和write()交换数据;
      5.服务进程和客户进程通过调用close()撤消套接字并中断连接
      。图1 面向连接协议的字节流套接字系统调用
      图2 非连接协议的报套接字系统调用

      数据套接字的服务进程客户进程通信前不必建立连接, 通信的步
      骤见图2。
      1.服务进程首先调用Socket()创建一个数据套接字,并调用bind(
      )将服务器地址捆扎在该套接字上,然后调用recvfrom()等待客户进程
      发来的请求;
      2.客户进程在调用Socket()创建一个数据报套接字后,调用bind(
      )将客户机地址捆扎在此套接字上,接着调用sendto()向服务进程发送
      请求,然后调用recvfrom()等待服务进程返回该请求的处理结果; 

      3.服务进程在执行客户进程所请求的任务后,调用sendto()将处
      理结果返回给客户进程
      4.服务进程和客户进程通过调用close()撤消套接字。 
            下一页 



    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 公司提供培训福利,想参加UNIX方面的培训,各位大侠提供下建议!
  • 学习unix,急需教程,请问哪里可以下载,或者谁可以提供这方面的材料!
  • 请问Unix中提供类似于Win2000的Dfs功能么?
  • 《UNIX操作系统设计》,哪位大侠提供一下中文电子版
  • 请问 可以在unix系统下安装输入法吗 那里提供下载 如何安装 请详细讲 我是新手
  • 哪里提供unix下载!!
  • unistd.h是由UNIX提供的文件吗
  • 请问那有unix主机提供登陆、练习、学习的?
  • 请问哪里有提供免费学习UNIX上机操作的IP地址呢?
  • unix(AIX或SCO)下有没有压缩工具可以提供使用密码压缩?
  • 请教专家:如何在Unix下连接MS SqlServer。最好是有代码。能提供IODBC的相关资料代码也可以
  • UNIX下 wc,grep,和修改文本文件的c程序的源程序那位高人能否提供一份? zero_baby@163.net
  • 提供UNIX_C学习的好方式...
  • 各位高手,我想请问unix下的makefile文件具体该如何写,请大家各抒自见,参加者有分,欢迎大家提供有益线索和经验! 越详细越好!!
  • unistd.h是由UNIX提供的文件吗 iis7站长之家
  • php获取访客ip地址原理及提供七段代码供参考
  • 诚征提供JSP个人免费主页的网站,鉴于公司代理限制,各位大虾晴多多提供,以便于选择!!!
  • ​Windows Server 2016提供Docker原生运行的企业级支持
  • 一般的tcpip实现都会提供ftp,telnet,daytime,以及time等基本服务,linux上提供13端口的daytime服务吗?
  • fosdick_j (杰) 提供的SCJP资料我已经提供下载了,快来下呀~
  • tomcat提供连接池吗?
  • 高分征解(在线等待),有谁能提供DOS下双机互连的工具LanLink5.0 。
  • 谁能提供免费的存放空间?
  • Redhat系统提供的C头文件放在哪里?autoconf这个工具在哪可以弄到?
  • 两机提供Web服务的问题,请大侠指教,急!(三根鸡毛)
  • 谁能提供kgdb内核补丁内核模块的下载
  • 谁能提供tcpdump 的源码?谢谢了.
  • 有谁可以提供点linux下wifi驱动开发的资料不?
  • shell script能为c程序提供输入数据吗?
  • 有没有高手提供以下方法:要将在Graphics存储成本地图像文件,怎么办?
  • 我想开发一个LINUX下的telnet服务器软件,大侠能否提供源码或者是链接?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3