网络连接(一)
来源:互联网 发布:网络预算表 编辑:程序博客网 时间:2024/06/06 02:37
说明:实现简单的TCP网络连接。
—————————————-服务器—————————————-
文件名称:Server.c
运行方式:命令行
#include <stdio.h>#include <stdlib.h>#include <winsock2.h>int main(int argc,char *argv[]){ WSADATA wsaData; SOCKET ServSock,ClntSock; SOCKADDR_IN ServAddr,ClntAddr; int szClntAddr; char message[]="hello world!"; if(argc!=2) { printf("Please input <port>:%s \n",argv[0]); exit(1); } if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) printf("WSAStartup() error!\n"); ServSock=socket(AF_INET,SOCK_STREAM,0); if(ServSock==INVALID_SOCKET) printf("socket() error!\n"); memset(&ServAddr,0,sizeof(ServAddr)); ServAddr.sin_family=AF_INET; ServAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY); ServAddr.sin_port=htons(atoi(argv[1])); if(bind(ServSock,(SOCKADDR *)&ServAddr,sizeof(ServAddr))==SOCKET_ERROR) printf("bind() error!\n"); if(listen(ServSock,5)==SOCKET_ERROR) printf("listen() error!\n"); szClntAddr=sizeof(ClntAddr); ClntSock=accept(ServSock,(SOCKADDR *)&ClntAddr,&szClntAddr); if(ClntSock==INVALID_SOCKET) printf("accept() error!\n"); send(ClntSock,message,sizeof(message),0); closesocket(ClntSock); closesocket(ServSock); WSACleanup(); return 0;}
—————————————-客户端—————————————-
文件名称:Client.c
运行方式:命令行
#include <stdio.h>#include <stdlib.h>#include <winsock2.h>int main(int argc,char *argv[]){ WSADATA wsaData; SOCKET ClntSock; SOCKADDR_IN ServAddr; char message[30]; int n; if(argc!=3) { printf("Please input <IP> <Port> :%s\n",argv[0]); exit(1); } if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0) printf("WSAStartup() error!\n"); /* 关于AF_INET与PF_INET说明 1.在windows中的winsock2.h文件中: #define PF_INET AF_INET 即:AF_INET与PF_INET是等价的,都表示IPv4。 2.Unix/Linux系统中,在不同的版本中这两者有微小差别。对于BSD是AF,对于POSIX是PF。但是也可以混合使用,只是不符合相关规范。 */ ClntSock=socket(AF_INET,SOCK_STREAM,0); if(ClntSock==INVALID_SOCKET) printf("socket() error!\n"); memset(&ServAddr,0,sizeof(ServAddr)); ServAddr.sin_family=AF_INET; ServAddr.sin_addr.S_un.S_addr=inet_addr(argv[1]); ServAddr.sin_port=htons(atoi(argv[2])); if(connect(ClntSock,(SOCKADDR *)&ServAddr,sizeof(ServAddr))==SOCKET_ERROR) printf("connect() error!\n"); n=recv(ClntSock,message,sizeof(message),0); if(n==-1) printf("Read the Server Data faild!\n"); else printf("Message from Server: %s\n",message); closesocket(ClntSock); WSACleanup(); return 0;}
0 0
- 网络连接(一)
- oracle 网络连接类型(一)
- android网络连接(一)官方文档
- Android网络连接系列学习(一)
- VirtualBox 网络连接方式研究(一)
- 执行网络操作(一):连接到网络
- Android 判断网络连接(一)
- HTTP网络连接相关知识整理(一):http连接与Socket连接
- HTTP网络连接相关知识整理(一):http连接与Socket连接
- Python学习 网络编程(一) TCP连接
- 高性能网络编程(一)----accept建立连接
- android之网络连接方式系列片(一)
- 高性能网络编程(一)----accept建立连接
- 高性能网络编程(一)----accept建立连接
- 高性能网络编程(一)----accept建立连接
- 高性能网络编程(一)----accept建立连接
- 高性能网络编程(一)----accept建立连接
- 高性能网络编程(一)----accept建立连接
- 深入理解Java的接口和抽象类
- python去掉首行的/n
- UIScrollView&UIPageControl的使用
- PPT自定义专用幻灯片版式
- 百度网盘连接失效
- 网络连接(一)
- C语言实现分布式自增有序的唯一ID生成算法-snowflake算法
- Unity3D【新手问题】阴影效果不显示的原因
- Get Luffy_poj2723_2-sat+二分
- Spark源码学习(2)——Spark Submit
- Debug Assertion Failed!........File:dbgdel.cpp
- 从头认识多线程-4.1 对象的发布(Publish)、逸出(Escape)以及逸出的解决方案
- poj 1159 Palindrome
- 2016 计蒜之道 初赛 第五场