client输入内容发送到server端输出

[1].[代码] [C/C++]代码 跳至[1] [2]

01#include <stdio.h>
02#include <iostream>
03#include <winsock2.h>
04#pragma comment(lib, "ws2_32.lib")
05using namespace std;
06int main()
07{
08    // 初始化 Winsock.
09    WSADATA wsaData;
10    int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
11    if ( iResult != NO_ERROR )
12    {
13        cout<<"failed to initialize!"<<endl;
14        return 0;
15    }
16 
17    // 建立socket socket.
18    SOCKET client;
19    client = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
20    if ( client == INVALID_SOCKET )
21    {
22        cout<<"failed to create client socket!"<<endl;
23        WSACleanup();
24        return 0;
25    }
26 
27    // 连接到服务器.
28    sockaddr_in clientService;
29    clientService.sin_family = AF_INET;
30    clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
31    clientService.sin_port = htons( 13579 );
32 
33    if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
34    {
35        cout<<"Failed to connect"<<endl;
36        closesocket(client);
37        WSACleanup();
38        return 0;
39    }
40 
41    // 发送数据.
42    int bytesSent;
43    char sendbuf[4096] = "Client: Sending data.";
44    while(TRUE)
45    {
46        bytesSent = send( client, sendbuf, strlen(sendbuf), 0 );
47        gets_s(sendbuf, 4096);
48    }
49 
50    closesocket(client);
51    WSACleanup();
52    return 0;
53}

[2].[代码] [C/C++]代码 跳至[1] [2]

01#include <iostream>
02#include <WinSock2.h>
03#pragma comment(lib, "ws2_32.lib")
04 
05using namespace std;
06 
07int main()
08{
09    WSADATA wsaData;
10 
11    int iInit = WSAStartup(MAKEWORD(2, 2), &wsaData);
12    if (iInit != NO_ERROR)
13    {
14        cout<<"failed to initialize!"<<endl;
15        return 0;
16    }
17 
18    SOCKET server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP);
19    if (server == INVALID_SOCKET)
20    {
21        cout<<"failed to create server socket!"<<endl;
22        WSACleanup();
23        return 0;
24    }
25 
26    sockaddr_in bindinfo;
27    bindinfo.sin_family = AF_INET;
28    bindinfo.sin_addr.s_addr =  inet_addr( "127.0.0.1" );
29    bindinfo.sin_port = htons(13579);
30    if ( bind( server, (SOCKADDR*) &bindinfo, sizeof(bindinfo) ) == SOCKET_ERROR )
31    {
32        cout<<"failed to bind!"<<endl;
33        closesocket(server);
34        WSACleanup();
35        return 0;
36    }
37 
38    //listen
39    if (listen(server, 1) == SOCKET_ERROR) {
40        cout<<"listen failed"<<endl;
41        closesocket(server);
42        WSACleanup();
43        return 0;
44    }
45 
46    //accept and block
47    SOCKET socketWork = accept(server, NULL, NULL);
48    if (socketWork == INVALID_SOCKET) {
49        wprintf(L"accept failed with error: %ld\n", WSAGetLastError());
50        closesocket(server);
51        WSACleanup();
52        return 0;
53    }
54 
55    int byteRecv = SOCKET_ERROR;
56    char recvBuf[4096] = "";
57 
58    while(TRUE)
59    {
60        byteRecv = recv(socketWork, recvBuf, 4096, 0);
61        if (byteRecv == 0)
62        {
63            break;
64        }
65        recvBuf[byteRecv] = 0;
66        cout<<recvBuf<<endl;
67    }
68 
69    closesocket(server);
70    WSACleanup();
71    return 0;
72 
73}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值