资源简介
本程序使用了Socket,多线程等技术,功能是在控制台中实现多机聊天的功能,环境为windows+vs2013

代码片段和文件信息
// QQ_client.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
#include
#pragma comment(lib “ws2_32.lib“)
using namespace std;
WSADATA wsd;
//发送数据远程服务器套接字
SOCKET Sremotehost;
//发送数据远程服务器地址
SOCKADDR_IN addrRemoteServ;
int addrRemoteServLen;
//批大小
const int BUFF_SIZE = 1024;
int Init_Chat(char ip[] char port[])//char ip[]char port[]
{
//初始化套接字库
if (WSAStartup(MAKEWORD(2 2) &wsd) != 0)
{
cout << “WSAStartup failed“ << endl;
return -1;
}
cout << “Chat Socket Init...“ << endl;
Sremotehost = socket(AF_INET SOCK_STREAM IPPROTO_TCP);
if (Sremotehost == INVALID_SOCKET)
{
cout << “Chat Socket Failed“ << endl;
WSACleanup();
return -1;
}
cout << “Service Socket Done...“ << endl;
addrRemoteServ.sin_family = AF_INET;
addrRemoteServ.sin_port = htons((short)atoi(port));//4999atoi(port)
addrRemoteServ.sin_addr.s_addr = inet_addr(ip);//“127.0.0.1“
addrRemoteServLen = sizeof(addrRemoteServ);
//连接服务器
int ret = connect(Sremotehost (LPSOCKADDR)&addrRemoteServ addrRemoteServLen);
if (ret == SOCKET_ERROR)
{
cout << “Connect Failed“ << endl;
cout << ::WSAGetLastError() << endl;
closesocket(Sremotehost);
WSACleanup();
return -1;
}
cout << “Connect Done...“ << endl;
return 0;
}
//向服务器发送数据
int Send_Info(char info[])
{
char recv_buf[BUFF_SIZE];
//cout << “Send to service:“ << info << endl;
int ret = send(Sremotehost info BUFF_SIZE 0);
if (ret == SOCKET_ERROR)
{
cout << “Send failed“ << endl;
}
ZeroMemory(recv_buf BUFF_SIZE);//如果不初始化,后面全都是 烫烫烫烫
recv(Sremotehost recv_buf BUFF_SIZE 0);
//cout << sizeof(recv_buf) << “ “ << strlen(recv_buf) << endl;
cout << “Sending... \n“ << recv_buf << endl;
cout << “\n“ << endl;
//getpeername(Sremotehost (struct sockaddr *)&addrRemoteServ &addrRemoteServLen); //获取connfd表示的连接上的对端地址
//cout << “To Friend: “ << inet_ntoa(addrRemoteServ.sin_addr) << “:“ << ntohs(addrRemoteServ.sin_port) << endl;
cout << “\n“ << endl;
return 0;
}
//聊天
int chat()
{
char ip[16] port[6];
cout << “Input his ip“ << endl;
cin >> ip;
cout << “Input his port“ << endl;
cin >> port;
int ret = Init_Chat(ip port);
if (ret == SOCKET_ERROR)
{
cout << “Init Chat Failed“ << endl;
return -1;
}
//Init();
char info[BUFF_SIZE];
cout << “Enjoy your chatting...“ << endl;
cin.get();
cout << “\n“;
while (true)
{
cout << “Please Insert Your Word:(If you want to cancel this chatPlease input quit)“;
ZeroMemory(info BUFF_SIZE);
cin.getline(info 1024 ‘\n‘);
cout << “You:“ << info << endl;
if (strcmp(info “quit“) == 0)
{
cout << “Quiting...“ << endl;
break;
}
Send_Info(info);
}
}
WSADATA wsd2;
//接收消息服务器套接字
SOCKET Sserver;
//接收消息服务器套接字地址
SOCKADDR_IN addrServ;
//接收消息发送方远程客户端套接字
SOCKET Sclient;
//接收消息发送方远程客户端套接字地址
sockaddr_in addrClient;
//接收消息发送方远程客户端套接字地址长度
int addrClientLen;
in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 88576 2018-05-07 10:12 SocketDemo\Debug\SocketDemo.exe
文件 577504 2018-05-07 10:12 SocketDemo\Debug\SocketDemo.ilk
文件 1748992 2018-05-07 10:12 SocketDemo\Debug\SocketDemo.pdb
文件 3080192 2018-05-05 15:55 SocketDemo\ipch\socketdemo-195ec9d4\socketdemo-21b5067a.ipch
文件 407 2018-05-07 10:27 SocketDemo\README.txt
文件 1601 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.log
文件 280861 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.obj
文件 1703936 2018-05-05 15:55 SocketDemo\SocketDemo\Debug\SocketDemo.pch
文件 1454 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\cl.command.1.tlog
文件 33298 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\CL.read.1.tlog
文件 7600 2018-05-07 09:49 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\CL.read.4.tlog
文件 21122 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\CL.read.5.tlog
文件 1042 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\CL.write.1.tlog
文件 1284 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\li
文件 3612 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\li
文件 548 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\li
文件 162 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\SocketDemo.tlog\SocketDemo.lastbuildstate
文件 11474 2018-05-05 15:55 SocketDemo\SocketDemo\Debug\stdafx.obj
文件 961536 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\vc120.idb
文件 577536 2018-05-07 10:12 SocketDemo\SocketDemo\Debug\vc120.pdb
文件 1531 2018-05-05 15:55 SocketDemo\SocketDemo\ReadMe.txt
文件 6703 2018-05-07 10:21 SocketDemo\SocketDemo\SocketDemo.cpp
文件 4539 2018-05-05 15:55 SocketDemo\SocketDemo\SocketDemo.vcxproj
文件 1317 2018-05-05 15:55 SocketDemo\SocketDemo\SocketDemo.vcxproj.filters
文件 216 2018-05-05 15:55 SocketDemo\SocketDemo\stdafx.cpp
文件 234 2018-05-05 15:55 SocketDemo\SocketDemo\stdafx.h
文件 236 2018-05-05 15:55 SocketDemo\SocketDemo\targetver.h
文件 37224448 2018-05-07 10:21 SocketDemo\SocketDemo.sdf
文件 976 2018-05-05 15:55 SocketDemo\SocketDemo.sln
..A..H. 19456 2018-05-07 10:21 SocketDemo\SocketDemo.v12.suo
............此处省略10个文件信息
- 上一篇:DevC++ 4.9
- 下一篇:UG二次开发用户界面(MFC简单)
相关资源
- C++多线程网络编程Socket
- socket客户端.c
- socket服务端.c
- socket tcp应用
- socket通讯c++源码(客户端+服务端)
- MFC的异步网络通讯应用程序
- 各种关于CAsyncSocketCSocket内幕及其用法
- MFC多人聊天室
- 使用socket套接字发送udp数据包
- CAsyncSocket异步实现服务器与客户端
- 基于socket文件传输的实现源码[C++]
- C语言实现TCP/IP协议通信和UDP协议通信
- c语言+UDP+DES加密+socket编程
- 局域网下,手机可以和电脑通过sock
- 计算机网络课程设计之Ping程序含C++原
- 基于c++和winsocket的局域网聊天源代码
- 基于udp的socket编程
- VC++,CSocket实现网络聊天,可发文件,
- 基于TCP协议的文件传输编程
- Socket编写的一个基于MFC的聊天程序源
- C++写的网络共享白板
- 基于TCP/IP socket的局域网聊天系统
- C++编写的多线程C/S模式仿QQ软件
- c++ socket 实现 语音 通信 双工
- MFC Csocket实现点对点文件传输
- CSocket端口扫描源代码MFC、VC++耿网出品
- 简单的基于MFC的Socket点对点对话客户
- MFC简单的客户端服务器通信软件
- 网络五子棋双人对弈系统
- 自己编写的C++基于socket编程的UDP聊天
评论
共有 条评论