Unix域套接字简单例子.doc_第1页
Unix域套接字简单例子.doc_第2页
Unix域套接字简单例子.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unix域套接字Unix域套接字是通过套接字API实现的简单的协议族。实际上它并不代表一个网络协议;它只能连接到同一台机器上的套接字。它提供了灵活的IPC机制。它的地址是它所在的文件系统的路径名,创建之后套接字就和路径名绑定在一起。用来表示Unix域地址的套接字文件能够使用stat()但是不能通过open()打开,而且应该使用套接字API对它进行操作。Unix域套接字是面向连接的,每个套接字的连接都建立了一个新的通讯信道。服务器可能同时处理许多连接,但对于每个连接都有不同的文件描述符。这个属性使Unix域套接字能够比命名管道更好的适应IPC任务。.在一个终端运行服务器,然后在另一个终端(在相同目录下)运行客户端。当从客户端输入一行时,数据将通过套接字送到服务器。当退出客户端,服务器将 等待另外一个连接。还可以通过客户端程序的重定向输入来传送文件,cat uclient.c | ./uclient 或 ./uclient uclient.c。服务器程序userver.c/* userver.c - Simple Unix Domain Socket server */* Waits for a connection on the ./sample-socket Unix domain socket. Once a connection has been established, copy data from the socket to stdout until the other end closes the connection, and then wait for another connection to the socket. */#include #include #include #include #include sockutil.h /* some utility functions */int main(void) struct sockaddr_un address; int sock, conn; size_t addrLength; if (sock = socket(PF_UNIX, SOCK_STREAM, 0) = 0) printf(- getting datan); copyData(conn, 1); printf(- donen); close(conn); if (conn 0) die(accept); close(sock); return 0;客户端程序uclient.c/* uclient.c - Simple Unix Domain Socket client */* Connect to the ./sample-socket Unix domain socket, copy stdin into the socket, and then exit. */#include #include #include #include sockutil.h /* some utility functions */int main(void) struct sockaddr_un address; int sock; size_t addrLength; if (sock = socket(PF_UNIX, SOCK_STREAM, 0) 0) die(socket); address.sun_family = AF_UNIX; /* Unix domain socket */ strcpy(address.sun_path, ./sample-socket); /* The total length of the address includes the sun_family element */ addrLength = sizeof(address.sun_family) + strlen(address.sun_path); if (connect(sock, (struct

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论