通信原理实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生学号实验课成绩

学生实验报告书

实验课程名称通信原理

开课学院计算机科学与技术学院

指导教师姓名刘维

学生姓名陈鑫宇

学生专业班级软件工程1401

2015-- 2016学年第 2 学期

实验课程名称:______通信原理_________

}

server::~server()

{

}

void server::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(server, CDialogEx)

ON_BN_CLICKED(IDC_BUTTON1, &server::OnBnClickedButton1)

ON_WM_TIMER()

END_MESSAGE_MAP()

// server 消息处理程序

void server::OnBnClickedButton1()

{

// TODO: 在此添加控件通知处理程序代码

//SetTimer(1, 50000, NULL);

int err;//错误信息

int len;

char sendBuf[100];//发送至客户端的字符串

char recvBuf[100];//接受客户端放回的字符串

SOCKET sockServer;//服务器端Socket

SOCKADDR_IN addrServer;//服务器端地址

SOCKET sockClient;//客户端Socket

SOCKADDR_IN addrClient;//客户端地址

WSADATA wsaData;//winsock结构体

WORD wVersinRequested;//winsock版本

//配置Windows Socket版本

wVersinRequested = MAKEWORD(2, 2);

//初始化Windows Socket

err = WSAStartup(wVersinRequested, &wsaData);

if (err != 0)

{

//启动错误,程序结束

return;

}

/*

确认WinSock DLL支持2.2

*/

if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2) {

//启动错误

WSACleanup();//终止WinSock 2 DLL的使用

return;

}

//定义服务器端socket

sockServer = socket(AF_INET, SOCK_STREAM, 0);

//设置服务器端socket

addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY);//本机IP

addrServer.sin_family = AF_INET;

addrServer.sin_port = htons(6000);

//将服务器socket绑定在本地端口

bind(sockServer, (SOCKADDR *)&addrServer, sizeof(SOCKADDR));

//Listen监听端口

listen(sockServer, 5);//5为等待连接数目

printf("服务器已启动:\n监听中...\n");

len = sizeof(SOCKADDR);

//accept会阻塞进程,直到有客户端连接上来为止

sockClient = accept(sockServer, (SOCKADDR*)&addrClient, &len);

//当客户端连接上来时,拼接字符串

sprintf(sendBuf, "欢迎 ip:%s 的用户连接,发送成功,欢迎使用\n", inet_ntoa(addrClient.sin_addr));

//向客户端发送字符串

send(sockClient, sendBuf, strlen(sendBuf) + 1, 0);

//获取客户端返回的数据

recv(sockClient, recvBuf, 100, 0);

//打印客户端返回的数据

CString text;

text = recvBuf;

SetDlgItemText(IDC_EDIT1, text);

//关闭socket

closesocket(sockClient);

}

客户端:

#include

#include

#pragma comment(lib, "ws2_32.lib")

#include"stdafx.h"

#include"通信实验.h"

#include"client.h"

#include"afxdialogex.h"

// client 对话框

IMPLEMENT_DYNAMIC(client, CDialogEx)

client::client(CWnd* pParent/*=NULL*/)

: CDialogEx(IDD_DIALOG2, pParent)

{

}

client::~client()

{

}

void client::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(client, CDialogEx)

ON_BN_CLICKED(IDC_BUTTON1, &client::OnBnClickedButton1)

相关文档
最新文档