Unix网络编程之socket编程(一)--socket入门简单程序
来源:互联网 发布:白金数据电影 编辑:程序博客网 时间:2024/06/15 23:59
本程序实现客户端向服务器发送一个字符串,服务器将接收到的字符串回送给客户端。
// unp.h#ifndef _UNP_H#define _UNP_H#include <stdio.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include <unistd.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#define MAXLINE 4096#define ERR_EXIT(m) \do{ \perror(m); \exit(EXIT_FAILURE); \ }while(0)#endif下面是客户端代码:
#include "unp.h"int main(){int sockfd;char sendbuff[MAXLINE];struct sockaddr_in servaddr;ssize_t n;if( (sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)ERR_EXIT("socket err");memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(6666);servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");if(connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)ERR_EXIT("connect err");for(; ;){fgets(sendbuff, MAXLINE, stdin);if( (n = write(sockfd, sendbuff, strlen(sendbuff))) < 0)ERR_EXIT("write err");memset(sendbuff, 0 ,sizeof(sendbuff));if( (n = read(sockfd, sendbuff, sizeof(sendbuff))) < 0)ERR_EXIT("read err");fputs(sendbuff, stdout);memset(sendbuff, 0, sizeof(sendbuff));}close(sockfd);}下面是服务端代码:
#include "unp.h"int main(){int listenfd, connfd;struct sockaddr_in servaddr;char recvbuff[MAXLINE];ssize_t n;if( (listenfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)ERR_EXIT("socket err");memset(&servaddr, 0, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port = htons(6666);servaddr.sin_addr.s_addr = INADDR_ANY;if(bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)ERR_EXIT("bind err");if(listen(listenfd, SOMAXCONN) < 0)ERR_EXIT("listen err");if( (connfd = accept(listenfd, (struct sockaddr*)NULL, NULL)) < 0)ERR_EXIT("accept err");for(; ;){if( (n = read(connfd, recvbuff, sizeof(recvbuff))) < 0)ERR_EXIT("read err");recvbuff[n] = '\0';fputs(recvbuff, stdout);if( (n = write(connfd, recvbuff, strlen(recvbuff))) < 0)ERR_EXIT("write err");memset(recvbuff, 0, sizeof(recvbuff));}close(connfd);close(listenfd);return 0;}
0 0
- Unix网络编程之socket编程(一)--socket入门简单程序
- 【Unix 网络编程】TCP 客户/服务器简单 Socket 程序
- 【Unix 网络编程】UDP 客户/服务器简单 Socket 程序
- Unix网络编程 之 socket简介
- Unix网络编程 之 socket基础
- Unix网络编程 之 socket简介
- 网络协议(四)Socket编程之Unix
- 网络编程入门-socket
- Socket网络编程入门
- 网络Socket入门编程
- socket编程入门(一)
- java socket网络编程入门一
- 《unix网络编程》(7)socket概述
- Socket编程简单入门
- Socket编程简单入门
- Socket网络编程(一)
- Socket网络编程(一)
- unix网络编程之UNIX Domain Socket IPC (sockaddr_un )
- len,counta,& “”连接符号,字符串长度,非空单元格数量
- 带着O_CREAT和O_RDWR进入linux系统调用open函数
- boost::xtime和::xtime会冲突
- Fragment做的导航滑动
- XListView上拉加载,下拉刷新
- Unix网络编程之socket编程(一)--socket入门简单程序
- Java命名规则
- shell-多个空格替换成一个逗号怎么写表达式
- Quartz 2D编程指南(2) - 图形上下文
- 要上线了,面对一大堆要上线的新代码,质量控制方面应该做什么
- 玩转iOS开发:《使用系统自定义UIActivity进行内容分享》
- HDOJ 2553 N皇后问题
- 安卓导航栏和ListView联动
- HttpUtils和XlistView