长春做公司网站的/长沙seo男团
云南大学软件学院
实 验 报 告
课程: 计算机网络原理实验 任课教师: 刘春花,刘宇
姓名: 学号: 专业:
姓名: 学号: 专业:
成绩:
实验三、套接字编程
1.实验目的:
两人一组,编写一个客户端、服务器程序,掌握 Socket 编程原理。
2.实验环境:
连入局域网络的主机一台。
3.实验指导:
Socket API 是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机
制。理解 socket 编程模型及其原理。
4 .实验分析,回答下列问题。
a. 运行指导书中的程序, 并修改服务器的功能 (自己思考),附上修改后的源代码,
并加关键代码注释。
客户端代码 (XXX-PC) :
#include "stdafx.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")
#define PORT 3490 /* 客户机连接远程主机的端口 */
#define MAXDATASIZE 100 /* 每次可以接收的最大字节 */
int _tmain(int argc, _TCHAR* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err = 0 ,rval = 0 ,i,check,count ;
SOCKET fd;
struct sockaddr_in servaddr;
struct hostent* hp;
char buf[1024] = "";
char buf_recv[1024] = "";
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
return -1;
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
printf("Can not create socket!");
exit(2);
}
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
hp = gethostbyname(" 169.254.235.165 "); (SSS-PC IP)
// 根据服务器的网络计算 // 机名称得到其 IP 地址等信息
memcpy((char*)&servaddr.sin_addr, (char*)hp->h_addr,hp->h_length);
memset(servaddr.sin_zero, 0, sizeof(servaddr.sin_zero