天津理工计算机网络,天津理工大学 计算机网络实验二

a7f4a3f590493a1e451dd952a488fd7c.gif 天津理工大学 计算机网络实验二

(9页)

30749e9f15edc79a6decf53525fded09.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

第 1 页 共 9 页 实验报告实验报告 学院(系)名称:学院(系)名称:计算机与通信工程学院 姓名姓名 卢洪利 学号学号 20146049 专业专业 计算机科学与技术 班级班级 4 班 实验实验名称名称 基于 TCP/UDP 的 Socket 编程 课程名称课程名称 计算机网络 课程代码课程代码 0662016 实验时间实验时间 2017 年 4 月 日 实验地点实验地点 7# 批改意见批改意见 成绩成绩 教师签字:教师签字: 1. 实验目的实验目的 了解套接字(socket)实现原理。通过编成理解 TCP、UDP 原理,加深对传输层的功能理解。 1) 掌握网络应用程序的开发方法; 2) 掌握 Client/ Server 结构软件的设计与开发方法 3) 掌握 Socket 机制的工作原理 2. 实验实验环境环境 ? Linux Mint 18.1 64bit with kernel Linux 4.4.0 ? Qt/C++ 5.8.1 3. 实验要求实验要求 请在以下题目中选择一个,按照要求完成实验,并完成实验报告。实验可以分组进行,每2 人一组,在 报告中注明每个成员的分工。编程可以使用任何高级语言,建议使用 java 或 C++。 4. 实验过程记录(源程序、测试用例、测试结果及心得体会等)实验过程记录(源程序、测试用例、测试结果及心得体会等) SOCKET 编程实现聊天程序 程序截图 第 2 页 共 9 页 程序界面-服务端 程序界面-客户端 状态图 第 3 页 共 9 页 示例代码: 客户客户端端:: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT 第 4 页 共 9 页 public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void init(); void newTcpConnect(); private: Ui::MainWindow *ui; QTcpSocket *tcpSocket; QByteArray mChat; private slots: void onReciveData(); void onSendMessage(); void onShowError(QAbstractSocket::SocketError); }; #endif // MAINWINDOW_H mainwindow.cpp #include “mainwindow.h“ #include “ui_mainwindow.h“ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui-setupUi(this); setWindowTitle(QString::fromLocal8Bit(“客户端“)); init(); connect(ui-sendBtn,SIGNAL(clicked(bool)),SLOT(onSendMessage())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::init() { tcpSocket = new QTcpSocket; 第 5 页 共 9 页 newTcpConnect(); connect(tcpSocket,SIGNAL(readyRead()),SLOT(onReciveData())); } void MainWindow::newTcpConnect() { tcpSocket-abort(); tcpSocket-connectToHost(“www.wenku365.com“,6666); } void MainWindow::onReciveData() { QString data = tcpSocket-readAll(); qDebug()textEdit-setText(mChat); } void MainWindow::onSendMessage() { QString textEdit = ui-lineEdit-text(); QString strData =QString::fromLocal8Bit(“Time: “) + QTime::currentTime().toString() + “\n“ + textEdit.toLocal8Bit() +“\n“; QByteArray sendMessage = strData.toLocal8Bit(); mChat+= (“Send “ + sendMessage); ui-textEdit-setText(mChat); tcpSocket-write(sendMessage); } void MainWindow::onShowError(QAbstractSocket::SocketError) { qDebug()errorString(); tcpSocket-close(); } main.c #include “mainwindow.h“ #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); 第 6 页 共 9 页 return a.exec(); } 服务服务端端:: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void init(); private: Ui::MainWindow *ui; QTcpSocket *tcpSocket; QTcpServer *tcpServer; QByteArray mChat; private slots: void sendMessage(); //发送消息 void onReciveData(); //接收数据 void newListen(); //建立 tcp 监听事件 void ac 关 键 词: 天津理工大学计算机网络实验二

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值