APP下载

基于VS的网络聊天室设计与实现

2020-09-29宋毅

电脑知识与技术 2020年17期

宋毅

摘要:随着网络编程应用软件普及,用户使用网络应用更加广泛,对于技术人员掌握多线程技术在网络程序设计中的应用,理解流式套接字程序设计模型,熟悉WinSock套接字库的加载,熟练掌握各类WinSock中API函数。该聊天室分为客户端和服务器端两端设计与实现。设计网络聊天室对于用户具有实际应用价值。

关键词:VS;网络编程;聊天室

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2020)17-0085-02

Abstract:With the popularization of network programming application software, users use network applications more widely. For technicians to master the application of multithreading technology in network programming, understand the flow socket programming model, be familiar with the loading of Winsock socket socket library, and master API functions in various Winsock. The chat room is divided into client and server-side design and implementation. The design of network chat room has practical application value for users.

Key words:VS;network programming;chat room

1 基础知识

WinSock的加载,建立监听、接受连接、数据发送和数据接受使用的WinSock中的listen、connect、send和recv;发送数据是.NET中宽字节和多字节的相互转换;线程函数的定义和线程启动。

2 设计步骤

2.1 服务端程序设计

1)创建项目

创建一个对话框应用程序,项目名称为“Fuwuqi”,在创建向导中设置“Windows套接字”,支持网络编程,其他采用默认设置,设计对话框如图1所示。添加一个列表控件,为其关联CListCtrl类型的变量m_list,设置控件的View属性为report,添加编辑框,为其关联CString类型的变量bianjikuang,添加按钮,为其建立消息映射。注意,添加成员变量过程如果有误,请删除对应头文件和源文件内的成员变量名字,重新填写即可。

2)修改FuwuqiDlg.h文件,头文件需要添加例如变量的声明等

在FuwuqiDlg.h文件中添加线程函数声明,代码如下,注意不要在类内写。

UINT thread(LPVOID)

3)编辑服务器端函数内容,写入对应程序

对话框程序自己带初始化功能,初始化计数器相关参数,首先调试这个函数的核心代码如下:

libiaokuang.InsertColumn(0,_T("消息"));//列表框内容显示信息

libiaokuang.SetColumnWidth(0,435); //设置列表框宽度

bianjikuang.fuwu.sin_family=AF_INET;

fuwu.sin_port=5000;/;

addlen=sizeof(fuwu);

sock=socket(AF_INET,SOCK_STREAM,0); //创建socket

if (bind(sock,(sockaddr*)&fuwu,addlen))  //绑定

bianjikuang = _T("绑定错误");

else

{

m_edit = _T("服务器创建成功");

listen(sock,5);       //开始侦听

AfxBeginThread(&thread,0);    //调用线……

登录APP查看全文