Unix网络编程 chapter习题代码

来源:互联网 发布:iphone5s软件闪退 编辑:程序博客网 时间:2024/05/14 08:17

修改原来的sever,每次只发一个字符:

#include"WinSock2.h"#include "time.h"#include "stdio.h"#include <iostream>#pragma comment(lib,"WS2_32")using namespace std;const int MaxLine = 1024;int main(){int lRet = 0;WSADATA lWsaData;if ((lRet = WSAStartup(MAKEWORD(2,2), &lWsaData)) != 0){cout << "Error " << lRet << endl;return 0;}int lListen = 0, lConnfd = 0;SOCKADDR_IN lServAddr;char lBuf[MaxLine];time_t lTicks;lServAddr.sin_family = AF_INET;lServAddr.sin_addr.s_addr = htonl(INADDR_ANY);lServAddr.sin_port = htons(9999);SOCKET lSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (INVALID_SOCKET == lSocket){cout << "INVALID_SOCKET" << endl;return 0;}bind(lSocket,(sockaddr*)(&lServAddr),sizeof(lServAddr));listen(lSocket,5);while(true){SOCKET lSeverSocket = accept(lSocket,(sockaddr*)NULL,NULL);lTicks = time(NULL);sprintf(lBuf, "%.24s\r\n", ctime(&lTicks));char *lTempStr = lBuf;int lSize = strlen(lBuf);for (int i = 0; i < lSize; ++i){send(lSeverSocket,lBuf+i,1,0);}closesocket(lSeverSocket);}}

当然,client也要修改,完整接完整个时间才走人,哈哈:

#include<WinSock2.h>#include <iostream>#include <string>using namespace std;#pragma comment(lib, "WS2_32")const int MaxLine = 1024;int main(){char lReadline[MaxLine];int lRet = 0;WSADATA lWsaData;if ((lRet = WSAStartup(MAKEWORD(2,2), &lWsaData)) != 0){cout << "Error " << lRet << endl;return 0;}SOCKADDR_IN lAddr;lAddr.sin_family = AF_INET;lAddr.sin_port = htons(9999);int lNum = 0;int lReadTime = 0;while (lReadTime++ < 10){SOCKET lSocket = socket(AF_INET, SOCK_STREAM, 0);if (INVALID_SOCKET == lSocket){cout << "INVALID_SOCKET" << endl;return 0;}lAddr.sin_addr.s_addr = inet_addr("192.168.1.102");if (connect(lSocket,(sockaddr*)(&lAddr),sizeof(lAddr)) < 0 ){cout << "connect error" << endl;return 0;}while( (lNum = recv(lSocket,lReadline,MaxLine,0)) > 0){string lStr(lReadline,lNum);cout << lStr;}}return 0;}


原创粉丝点击