C++网络
2016-05-10 19:31
639 查看
#include <windows.h> #include <iostream> using namespace std; SOCKET StartServer(){ SOCKET serverSocket; if(INVALID_SOCKET == (serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))){ cout << "create socket error" << endl; Sleep(3000); exit(-1); } short port = 9999; struct sockaddr_in serverAddress; memset(&serverAddress,0,sizeof(sockaddr_in)); serverAddress.sin_family=AF_INET; serverAddress.sin_addr.S_un.S_addr = htonl(INADDR_ANY); serverAddress.sin_port = htons(port); if(SOCKET_ERROR == bind(serverSocket,(sockaddr*)&serverAddress,sizeof(serverAddress))){ cout<<"bind error at :"<<port << endl; Sleep(3000); exit(-1); } if(SOCKET_ERROR == listen(serverSocket,SOMAXCONN)){ cout<<"listen error..." << endl; Sleep(3000); exit(-1); } cout<< "Server is listening at " << port << "......" << endl; return serverSocket; } SOCKET ReceiveConnect(SOCKET &serverSocket){ SOCKET clientSocket; struct sockaddr_in clientAddress; memset(&clientAddress,0,sizeof(clientAddress)); int addrlen = sizeof(clientAddress); if(INVALID_SOCKET == (clientSocket = accept(serverSocket,(sockaddr*)&clientAddress,&addrlen))){ cout<<"receive client error..." << endl; Sleep(3000); exit(-1); } cout << "Accept connection from " << inet_ntoa(clientAddress.sin_addr)<<endl; return clientSocket; } void SendMsg(SOCKET &clientSocket,string data){ cout<<"server send msg:" << data; if(send(clientSocket,data.data(),data.length(),0)==SOCKET_ERROR){ cout<<"send error..."<<endl; Sleep(3000); exit(-1); } } int main(){ cout << "start..." << endl; WSADATA wsa; if(0 != WSAStartup(MAKEWORD(2,2),&wsa)){ cout<<"socket init error"; Sleep(3000); exit(-1); } SOCKET serverSocket = StartServer(); SOCKET clientSocket = ReceiveConnect(serverSocket); for(;;){ SendMsg(clientSocket,"hello world!!\r\n"); Sleep(1000); } return 0; }
相关文章推荐
- java-模拟tomcat服务器
- Linux socket 初步
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- java socket 注意的地方
- java socket 注意的地方
- share_ptr的几个注意点
- C#基于socket模拟http请求的方法
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- 简单的Ruby中的Socket编程教程
- Socket不能选择本地IP连接问题如何解决
- C#之Socket操作类实例解析
- C++联合体转换成C#结构的实现方法
- 使用C#来编写一个异步的Socket服务器
- C#使用Socket快速判断数据库连接是否正常的方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏