• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 代码  

资源简介

网络编程实验一,客户端和服务器代码

资源截图

代码片段和文件信息

/************************************************************************************************************************************
*程序:client.c
*目的:创建一个套接字,通过网络连接一个服务器,并打印来自服务器的信息
*语法:client [ host [port] ]
*      host - 运行服务器的计算机的名字
*      port - 服务器监听套接字所用协议端口号
*注意:两个参数都是可选的。如果未指定主机名,客户机使用localhost;如果未指定端口号,客户机将使用PROTOPORT中给定的默认协议端口号
************************************************************************************************************************************/
#include                 /*windows下,unix里关于套接字的头文件都包括在winsock2.h*/
#include 
#include 
#pragma comment(lib“ws2_32.lib“)      /*连入一个库文件*/

#define PROTOPORT 5188                 /*默认协议端口号*/
char *localhost = “localhost“;         /*默认主机名*/

int main(int argcchar *argv[])
{
struct hostent *ptrh;                 /*指向主机列表中一个条目的指针*/
struct sockaddr_in servaddr;          /*存放服务器端网络地址的结构*/
SOCKET sockfd;                        /*客户机端的套接字描述符*/
int port;                             /*服务器端套接字协议端口号*/
char *host;                           /*服务器主机名指针*/
int datalen;                          /*发送、接收的数据长度*/
int addrlen;                          /*地址长度*/
char buf[1000];                       /*缓冲区,接收服务器发来的数据*/
    WSADATA wsaData;

if(WSAStartup(MAKEWORD(22)&wsaData) != 0)
{
printf(“Failed to load winsock.\n“);
return -1;
}

memset((char *)&servaddr0sizeof(servaddr));   /*清空sockaddr结构*/
servaddr.sin_family = AF_INET;                  /*设置为Internet协议簇*/

/*检查命令行参数,如果有,就抽取端口号;否则使用内定的默认值*/
if(argc > 2)
port = atoi(argv[2]);                       /*如果指定了协议端口,就转换成整数*/
else
port = PROTOPORT;               

评论

共有 条评论