现在的位置: 首页 > 综合 > 正文

TCP服务器/客户端

2018年06月06日 ⁄ 综合 ⁄ 共 1735字 ⁄ 字号 评论关闭

TCP客户端源程序
#include   <stdio.h>
#include   <winsock2.h>
#pragma   comment(lib,   "WS2_32.lib")

#define   BUF_SIZE         1024
#define   SERVER_IP       "127.0.0.1"
#define   SERVER_PORT   5678

int   main(int   argc,   char*   argv)
{
        WSADATA   wsaData;
        SOCKADDR_IN   serverAddr;
        SOCKET   socketC;
        char   sendbuf[BUF_SIZE]   =   "Hello   TCP   World!";

        WSAStartup(MAKEWORD(1,1),   &wsaData);

        socketC   =   socket(AF_INET,   SOCK_STREAM,   IPPROTO_TCP);

        serverAddr.sin_family   =   AF_INET;
        serverAddr.sin_port   =   htons(SERVER_PORT);
        serverAddr.sin_addr.s_addr   =   inet_addr(SERVER_IP);

        connect(socketC,   (SOCKADDR*)&serverAddr,   sizeof(serverAddr));

        send(socketC,   sendbuf,sizeof(sendbuf),   0);

        closesocket(socketC);

        WSACleanup();

        return 0:
}

TCP服务器端源程序
#include   <stdio.h>
#include   <winsock2.h>
#pragma   comment(lib,   "WS2_32.lib")

#define   BUF_SIZE         1024
#define   SERVER_IP       "127.0.0.1"
#define   SERVER_PORT   5678

int   main(int   argc,   char**   argv)
{
        WSADATA   wsaData;
        SOCKET     socketL;     //   socket   for   listening
        SOCKET     socketC;     //   socket   for   Communication
        SOCKADDR_IN   serverAddr;
        int   nRet   =   -1;
        char   recvbuf[BUF_SIZE];

        WSAStartup(MAKEWORD(1,1),   &wsaData);

        socketL   =   socket(AF_INET,   SOCK_STREAM,   IPPROTO_TCP);

        serverAddr.sin_family             =   AF_INET;
        serverAddr.sin_port                 =   htons(SERVER_PORT);
        serverAddr.sin_addr.s_addr   =   htonl(INADDR_ANY);

        bind(socketL,   (SOCKADDR*)&serverAddr,   sizeof(serverAddr));

        listen(socketL,   5);

        socketC   =   accept(socketL,   NULL,   NULL);
        if   (socketC   !=   INVALID_SOCKET)
        {
                nRet   =   recv(socketC,   recvbuf,   sizeof(recvbuf),   0);
                if   (nRet   >   0)
                        printf("%s   ",   recvbuf);
        }

        closesocket(socketC);
        closesocket(socketL);

        WSACleanup();

       return   0;

 

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn

 

抱歉!评论已关闭.