client
客户端

#include<Winsock2.h>
#include
<stdio.h>
#include
<stdlib.h>
#pragma comment (lib,
"ws2_32.lib")

//服务器使用的端口号为5050
#define DEFAULT_PORT 5050
#define DATA_BUFFER 1024

void main()
{
    WSADATA wsaData;
    SOCKET sClient;
    
int iPort = DEFAULT_PORT;
    
//接收数据的缓冲
    int iSend;
    
int iRecv;
    
//要发送给服务器的信息
    char send_buf[1024];
    
//接收数据的缓冲
    char recv_buf[DATA_BUFFER];
    
//服务器端地址
    struct sockaddr_in ser;

    printf(
"--------------------------\n");
    printf(
"基于TCP的通信程序的客户端\n");

    
//提示在命令持中输入法服务器IP地址
    printf("输入服务器IP:");

    
char ipz[32];    
    gets(ipz);
    
//char * ipz=&ip;

    
//接收数据的缓冲区初始化
    memset(recv_buf,0,sizeof(recv_buf));

    
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0)
    
{
        printf(
"Failed to load Winsock.\n");
        
return;
    }


    
//填写要连接的服务器地址信息
    ser.sin_family = AF_INET;
    ser.sin_port 
= htons(iPort);
    
//inet_addr()函数将命令持的点扫IP地址转化为用二进制表示的网络顺序的IP地址
    
//ser.sin_addr.s_addr = inet_addr(argv[1]);
    ser.sin_addr.s_addr = inet_addr(ipz);
    
//建立客户端流式套接口
    sClient = socket(AF_INET,SOCK_STREAM,0);

    
if(sClient == INVALID_SOCKET)
    
{
        printf(
"socket() Failed:%d\n",WSAGetLastError());
        
return;
    }


    
//请求与服务器端建立TCP连接
    if(connect(sClient,(struct sockaddr*)&ser,sizeof(ser)) == INVALID_SOCKET)
    
{
        printf(
"connect() Failed.:%d\n",WSAGetLastError());
        
return;
    }

    
else
    
{
        printf(
"建立TCP连接成功!\n");
        printf(
"--------------------------\n");

        
//进入一个无限循环,与服务器交互
        while(1){

            
//向服务器发送数据

            printf(
"发送消息:");
            gets(send_buf);

            iSend 
= send(sClient,send_buf,sizeof(send_buf),0);

            
if(iSend == SOCKET_ERROR)
            
{
                printf(
"send() Failed:%d\n,WSAGetLastError()");
                    
return;
            }

            
else if(iSend == 0)
                
return;
                
else
                    printf(
"发送成功.\n");


            
//从服务器端接收数据
            iRecv = recv(sClient,recv_buf,sizeof(recv_buf),0);

            
if(iRecv == SOCKET_ERROR)
            
{
                printf(
"recv() Failed:%d\n",WSAGetLastError());
                
return;
            }

            
else if(iRecv == 0)
                
return;
                
else
                
{
                    
//显示从服务器收到的信息
                    printf("服务器说:%s\n",recv_buf);
                    printf(
"--------------------------\n");
                }

        }

    }


    closesocket(sClient);
    WSACleanup();
}


阅读更多
想对作者说点什么? 我来说一句

ssh client

2011年06月25日 5.22MB 下载

fax client C++

2010年07月28日 6.76MB 下载

my client and server

2011年07月30日 407KB 下载

Client SDK

2011年02月27日 77KB 下载

VNC Client

2011年03月10日 172KB 下载

JavaScriptSOAPClient_demo.zip

2009年05月25日 10KB 下载

TCP Client program.doc

2009年06月10日 24KB 下载

opcclientopc client

2011年11月16日 52KB 下载

vnc软件client

2009年04月17日 265KB 下载

CVT KP Client 1.6

2010年11月22日 1.01MB 下载

没有更多推荐了,返回首页

不良信息举报

client

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭