云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于套接字的聊天程序设计

基于套接字的聊天程序设计

  • 62 次阅读
  • 3 次下载
  • 2026/1/11 20:37:32

进程连接请求

if (sockConn == INVALID_SOCKET) {

cout<<\ break; }

char recvBuf[1024] = \

iLen = recv(sockConn,recvBuf,1024,0);//接收数据 if (iLen == SOCKET_ERROR) {

cout<<\ break; }

recvBuf[iLen] = '\\0'; cout<

char sendBuf[1024],hostname[100];

if (gethostname(hostname,100) != 0) //获取主机名称 strcpy(hostname,\ sprintf(sendBuf,\%s to %s!\

err = send(sockConn,sendBuf,strlen(sendBuf)+1,0); //发送数据 if (err == SOCKET_ERROR) {

cout<<\ break; }

while(1 ) {

char recvBuf[1024] = \

iLen = recv(sockConn,recvBuf,1024,0);//接收数据 if (iLen == SOCKET_ERROR) {

cout<<\ break; }

recvBuf[iLen] = '\\0'; cout<

- 8 - / 39

connected cout<<\请输入你要发送的消息,输入E退出\ char sendBuf[1024]; cin>>sendBuf;

string str=sendBuf; if(str.compare(\ {

err = send(sockConn,sendBuf,strlen(sendBuf)+1,0); //发送数据 if (err == SOCKET_ERROR) {

cout<<\ break; } } else {

break; } }

closesocket(sockConn); //关闭套接字 cout<<\ }

WSACleanup(); return 0; }

3.1.2 客户端设计:

#include #include using namespace std; #include

int main(int argc, char *argv[]) {

const int DEFAULT_PORT = 5000; WORD wVersionRequested; WSADATA wsaData; int err,iLen;

wVersionRequested=MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) {

cout<<\加载WinSock失败!\ return 0;

- 9 - / 39

}

//创建用于连接的套接字

SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0); if (sockClient == INVALID_SOCKET) {

cout<<\ return 0; }

SOCKADDR_IN addrSrv; //string ip; char cip[20]=\ int port; char type;

cout <<\服务器基本设置为 ip:127.0.0.1 端口:5000\ cout <<\是否从新设置:Y or N\ cin>>type; if(type=='Y') {

cout<<\ cin>>cip; //ip=cip;

cout<<\端口:\ cin>>port;

addrSrv.sin_family = AF_INET;

addrSrv.sin_addr.S_un.S_addr = inet_addr(cip); addrSrv.sin_port = htons(port); } else {

addrSrv.sin_family = AF_INET;

addrSrv.sin_addr.S_un.S_addr = inet_addr(\ addrSrv.sin_port = htons(DEFAULT_PORT); }

err = connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//请求连接服务器进程

if ( err == INVALID_SOCKET ) {

cout<<\ return 0; }

- 10 - / 39

char sendBuf[1024],hostname[100];

if (gethostname(hostname,100) != 0) //获取主机名称 strcpy(hostname,\strcpy(sendBuf,hostname);

strcat(sendBuf,\

err = send(sockClient,sendBuf,strlen(sendBuf)+1,0); //发送数据 if (err == SOCKET_ERROR) {

cout<<\ return 0; }

char recvBuf[1024];

iLen = recv(sockClient,recvBuf,1024,0); //接收数据 if (iLen == 0) return 0;

else if (iLen == SOCKET_ERROR) {

cout<<\ return 0; } else {

recvBuf[iLen] = '\\0'; cout<

while(1) {

char sendBuf[1024];

cout<<\请输入你要发送的消息,输入E退出\ cin>>sendBuf;

string str=sendBuf; if(str.compare(\ {

err = send(sockClient,sendBuf,strlen(sendBuf)+1,0); //发送数据 if (err == SOCKET_ERROR) {

cout<<\ return 0; } }

- 11 - / 39

搜索更多关于: 基于套接字的聊天程序设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

进程连接请求 if (sockConn == INVALID_SOCKET) { cout<<\ break; } char recvBuf[1024] = \ iLen = recv(sockConn,recvBuf,1024,0);//接收数据 if (iLen == SOCKET_ERROR) { cout<<\ break; } recvBuf[iLen] = '\\0'; cout<

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com