网络编程之SOCKET编程学习笔记
2017-07-09 14:15
417 查看
使用TCP/IP协议的应用程序通常采用应用编程接口:UNIX BSD的套接字(socket)和UNIX System V的TLI(已经被淘汰),来实现网络进程之间的通信。就目前而言,几乎所有的应用程序都是采用socket,而现在又是网络时代,网络中进程通信是无处不在,这就是我为什么说“一切皆socket”。
--摘自某博主的总结
WindowsSockets编程
加载套接字库
创建套接字
绑定地址信息
服务器端与客户端互相通信
服务器端代码:
客户端代码:
Unix/Linux socket编程
http://www.cnblogs.com/MyLove-Summer/p/5215287.html
--摘自某博主的总结
WindowsSockets编程
加载套接字库
创建套接字
绑定地址信息
服务器端与客户端互相通信
服务器端代码:
#include <Winsock2.h> #include <stdio.h> void main() { //加载套接字库 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=WSAStartup(wVersionRequested,&wsaData); if(err!=0) {return;} if(LOBYTE(wsaData.wVersion)!=0 || HIBYTE(wsaData.wVersion)!=0) { WSACleanup(); return; } //创建用于监听的套接字 SOCKET sockSrc=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrc; addrSrc.sin_addr.S_un.S_addr=htonl(INADDR_ANY); addrSrc.sin_family=AF_INET; addrSrc.sin_port=htons(3000); //绑定套接字 bind(sockSrc,(SOCKADDR*)&addrSrc,sizeof(SOCKADDR)); //将套接字设为监听模式,准备接收客户请求 listen(sockSrc,5); SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR); while(1) { //等待客户请求到来 SOCKET sockConn=accept(sockSrc,(SOCKADDR *)&addrClient,&len); char sendBuf[100]; sprintf(sendBuf,"Welcome %s to C++ world",inet_ntoa(addrClient.sin_addr)); //发送数据 send(sockConn,sendBuf,strlen(sendBuf)+1,0); char recvBuf[100]; recv(sockConn,recvBuf,100,0); printf("%s\n",recvBuf); closesocket(sockConn); } }
客户端代码:
#include <Winsock2.h> #include <stdio.h> void main() { //加载套接字 WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested=MAKEWORD(1,1); err=WSAStartup(wVersionRequested,&wsaData); if(err!=0) {return;} if(LOBYTE(wsaData.wVersion)!=0 || HIBYTE(wsaData.wVersion)!=0) { WSACleanup(); return; } //创建套接字 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(3000); //向服务器发送请求 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //接收数据 char recvBuf[100]; recv(sockClient,recvBuf,100,0); printf("%s\n",recvBuf); //发送数据 send(sockClient,"This is my world",strlen("This is my world")+1,0); //关闭套接字 closesocket(sockClient); WSACleanup(); }
Unix/Linux socket编程
http://www.cnblogs.com/MyLove-Summer/p/5215287.html
相关文章推荐
- Python学习笔记--网络编程, socket
- Java网络编程学习笔记(3)ServerSocket用法详解
- java网络编程学习笔记(三):ServerSocket详解
- Java网络编程学习笔记(六)服务器Socket
- Linux网络编程学习笔记--socket编程4--7
- 黑马程序员_学习笔记:15) 网络编程:Socket(udp、tcp)
- Python学习笔记(4)-- 网络编程(1)-- socket
- [零散篇]Java学习笔记---Java的Socket网络编程以及多线程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 学习笔记之SOCKET网络编程之二
- 网络编程学习笔记(一)-----socket
- python 网络编程基础学习笔记(1)-网络客户端-socket
- Java SE学习笔记:网络编程,Socket,B/S
- 【网络编程学习笔记01】Socket套接字编程(TCP/IP)
- 网络编程学习笔记一:Socket编程
- Python学习笔记(七) -- Python Socket 网络编程
- 网络编程-socket学习笔记
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记--1.socket可读可写条件