文档章节

SOCKET Server实例

种地瓜
 种地瓜
发布于 2016/05/13 17:02
字数 240
阅读 30
收藏 0

// PigServer.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include "process.h"
#include <Windows.h>
#include <WinSock2.h>
using namespace std;
#pragma comment(lib,"ws2_32.lib")

 

//接受数据
void receive(PVOID param)
{
    SOCKET sock = *((SOCKET*)param);
    char buf[2048] = { 0 };

    int bytes;
    while (1)
    {
        if (SOCKET_ERROR == (bytes = recv(sock, buf, sizeof(buf), 0)))        //rev
        {
            _endthread();
            return;
        }

    }
}

//接受的线程
void ReceiveConnectThread(void *param)
{
    SOCKET socketServer = *((SOCKET*)param);
    while (1)//不断接受来自Client的数据
    {
        SOCKET clientSocket;    //Receive the client
        sockaddr_in clientAddress;
        memset(&clientAddress, 0, sizeof(clientAddress));
        int addrLen = sizeof(clientAddress);

        if (INVALID_SOCKET == (clientSocket = accept(socketServer, (sockaddr*)&clientAddress, &addrLen)))
        {
            cout << "Receive The Client Failure!" << endl;
            return ;
        }
        _beginthread(receive, 0, &clientSocket);
    }
}

//开始服务
SOCKET StartServer()
{
    SOCKET serverSocket;//Inintiate
    //Create Failure
    if (INVALID_SOCKET == (serverSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)))
    {
        cout << "Create Socket Error!" << endl;
        return 0;
    }

    //Create Success
    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(9224);

    //bind
    if (SOCKET_ERROR == (bind(serverSocket, (sockaddr*)&serverAddress, sizeof(serverAddress))))
    {
        cout << "socket bind error" << endl;
        return 0;
    }
    
    //listen
    if (SOCKET_ERROR == (listen(serverSocket, SOMAXCONN)))
    {
        cout << "Listern Erroe!" << endl;
        return 0;
    }
    return serverSocket;
}

//main
int _tmain(int argc, _TCHAR* argv[])
{
    WSADATA wsa;
    if (0 != WSAStartup(MAKEWORD(2, 2), &wsa))
    {
        cout << "Init Sockt Error!" << endl;
        return -1;
    }

    SOCKET sockt=StartServer();

    _beginthread(ReceiveConnectThread, 0, &sockt);

    system("pause");

    return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
种地瓜
粉丝 9
博文 175
码字总数 44807
作品 0
深圳
程序员
MySQL-----多实例配置

1.1 MySQL实例---多实例配置 1.1.1 多实例概述 多套后台进程+线程+内存结构 多个端口,多个配置文件,多个日志文件,多个socket,多个server_id 多套数据 ##PS:安装多实例前,首先确保MySQL...

zack01
07/12
0
0
Iperf 源代码分析(四)

Socket 类 Socket的定义和实现分别在文件Socket.hpp和 Socket.cpp中。它的主要功能是封装了socket文件描述符、此socket对应的端口号,以及socket接口中的listen, accept, connect和close等函...

KiteRunner
2014/05/25
0
0
android ssl验证、https验证

Keytool工具的使用。 在用Android平台上使用SSL,第一步就是生成证书。 1、证书的生成 1.1生成服务器端的证书py keytool -genkey -alias test -keystore test.jks 1.2 将keystore中的cert导出...

ViceCode
2014/02/10
0
0
MYSQL数据库多实例的安装配置mysql_multi启停实战

一、多实例的应用场景: 1、资金紧张型公司的选择 当公司业务访问量不太大,又舍不得花钱,但同时又希望不同业务的数据库服务各自独立,而且需要主从同步进行等技术提供备份或读写分离服务时...

無言地对白
2016/11/15
0
0
TeamTalk源码分析(三) —— 服务器端的程序架构介绍

通过上一节的编译与部署,我们会得到TeamTalk服务器端以下部署程序: dbproxyserver file_server httpmsgserver login_server msfs msg_server push_server router_server 这些服务构成的拓扑...

analogous_love
2017/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

df和du命令 磁盘分区

9月25日任务 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 df 命令 查看系统磁盘空间使用情况 常用参数 -h (human-readble) # 人性化的为空间大小转换单位显示[root@centos7 ~]# df -h文件系...

robertt15
30分钟前
3
0
【a&sAI创新】华为CloudIVS轻量云:借力打力,四两拨千斤

[摘要] 1、测评表现就目前来说,AI的门槛还是比较高的,业内所熟知的算法企业,为了追求算法的极致,比如人脸识别公司,仍在不断扩大研发...   1、测评表现   就目前来说,AI的门槛还是比...

yizhichao
46分钟前
2
0
安卓安装APK报错error: INSTALL_FAILED_UPDATE_INCOMPATIBLE

记录一个 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK问题 之前遇到这个问题 方案1 将data/data/目录下该应用的包名的目录删除掉,如:adb shell rm -rf data/data/com.demo.h...

切切歆语
47分钟前
1
0
用网关zuul时,熔断hytrix里面的坑

1,zuul 默认的隔离级别是信号量,默认最大隔离信号量是100 信号量隔离和线程池隔离的区别如下: https://my.oschina.net/u/867417/blog/2120713 默认设置: 2,zuul里隔离是按服务隔离的,也...

爱吃大肉包
47分钟前
0
0
使用SSM+Solr优雅的实现电商项目中的搜索功能

在学习了Redis&Spring-Data-Redis入门和Solr&Spring-Data-Solr入门后,接下来就该是项目实战了。这次我们用Vue.JS和ElementUI写前端页面,优雅的整合SSM-Shiro-Redis-Solr框架。 手摸手教你优...

TyCoding
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部