• 大小: 4.81MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-28
  • 语言: 其他
  • 标签: TCP  聊天程序  

资源简介

基于TCP的简单一对一聊天程序设计

资源截图

代码片段和文件信息

#include “Client.h“
//Global Message object
#pragma comment(lib“wsock32.lib“) 
CIPMessage MyMessObj;
CIPMessage::CIPMessage()//MyMessObj构造函数
{
m_bIsConnected = false;
}
void CIPMessage::Init(string sIpAddress int iPort)//建立与服务器端得连接
{
m_sServerIPAddress = sIpAddress;
m_iServerPort = iPort;
struct hostent *hp;
unsigned int addr;
struct sockaddr_in server;
WSADATA wsaData;
int wsaret=WSAStartup(0x101&wsaData);//应用程序调用的第一个Windows Sockets函数.
//它允许应用程序或DLL指明Windows Sockets API的版本号及获得特定Windows Sockets实现的细节.
if(wsaret!=0)
{
return;
}
conn=socket(AF_INETSOCK_STREAM0);//建立客户端套接字
if(conn==INVALID_SOCKET)
return;
addr=inet_addr(m_sServerIPAddress.c_str());//转化ip地址和端口为指定形式
hp=gethostbyaddr((char*)&addrsizeof(addr)AF_INET);
if(hp==NULL)
{
closesocket(conn);
return;
}
server.sin_addr.s_addr=*((unsigned long*)hp->h_addr);
server.sin_family=AF_INET;
server.sin_port=htons(m_iServerPort);
if(connect(conn(struct sockaddr*)&serversizeof(server)))//向指定服务器建立连接
{
closesocket(conn);
return;
}
m_bIsConnected = true;
return;
}
CIPMessage::~CIPMessage()//MyMessObj析构函数
{
if(m_bIsConnected)
closesocket(conn);
}
int CIPMessage::SendMessagePort(string sMessage)//向指定服务器发出数据
{
int iStat = 0;
iStat = send(connsMessage.c_str()sMessage.size()+10);
if(iStat == -1)
return 1;
return 0;
}
int CIPMessage::RecMessagePort()//接收指定服务器数据
{
char acRetData[4096];
int iStat = 0;
iStat = recv(connacRetData40960);
if(iStat == -1)
return 1;
cout<<“-->:“< return 0;
}
UINT  MessageRecThread(LPVOID pParam)//接收指定服务器数据线程
{
while(1)
{
if(MyMessObj.RecMessagePort())
break;
}
return 0;
}
int main(int argc char* argv[])
{
char buf[4096];
cout<<“This is a client TCP/IP application\nConnecting to port 8084\n“;
cout<<“\nPress ONLY ENTER to quit“;
cout<<“\n===============================================\n“;
FILE *fp = fopen(“server.ini““r“);//获取服务器端套接字地址
if(fp == NULL)
{
cout<<“\nUnable to open server.ini. Please specify server IPsddress in server.ini“;
return 1; // main failed
}
string sServerAddress;
while((fgets(buf4096fp)) != NULL)
{
if(buf[0] == ‘#‘)
continue;
sServerAddress = buf;
}
fclose(fp);
if(sServerAddress.size() == 0)
{
cout<<“\nUnable to find server IPaddress in server.ini“;
cout<<“\nPlease set server IPaddress“;
cout<<“\nBYEBYE:“;
getch();
return 0;
}
MyMessObj.Init(sServerAddress.c_str()8084);//启动与服务器连接
if(!MyMessObj.IsConnected())
{
cout<<“\nUnable to connect to the IPaddress specified in server.ini“;
cout<<“\nPlease check server IPaddress“;
cout<<“\nReady to see goodbye:“;
getch();
return 0;
}
AfxBeginThread(MessageRecThread0);//开启接收数据线程
while(gets(buf))
{
if(strlen(buf) == 0)
break;
if(MyMessObj.SendMessagePort(buf))//向服务器发送数据
{
cout<<“Problem in connecting to server. Check whether server is run

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3242  2014-07-06 01:09  TCP\Client\Client.cpp

     文件       3265  2014-07-08 00:39  TCP\Client\Client.dsp

     文件        518  2014-07-08 00:39  TCP\Client\Client.dsw

     文件        517  2014-07-06 00:51  TCP\Client\Client.h

     文件      41984  2014-07-08 00:39  TCP\Client\Client.ncb

     文件      48640  2014-07-08 00:39  TCP\Client\Client.opt

     文件        464  2014-07-08 00:38  TCP\Client\Client.plg

     文件    1429551  2014-07-08 00:38  TCP\Client\Debug\Client.exe

     文件    1907872  2014-07-08 00:38  TCP\Client\Debug\Client.ilk

     文件      78489  2014-07-08 00:38  TCP\Client\Debug\Client.obj

     文件    4920964  2014-07-08 00:38  TCP\Client\Debug\Client.pch

     文件    2614272  2014-07-08 00:38  TCP\Client\Debug\Client.pdb

     文件     279552  2014-07-08 00:38  TCP\Client\Debug\vc60.idb

     文件     110592  2014-07-08 00:38  TCP\Client\Debug\vc60.pdb

     文件         11  2014-07-06 01:04  TCP\Client\server.ini

     文件    1425455  2014-07-08 00:38  TCP\Server\Debug\Server.exe

     文件    1905840  2014-07-08 00:38  TCP\Server\Debug\Server.ilk

     文件      91479  2014-07-08 00:38  TCP\Server\Debug\Server.obj

     文件    5373704  2014-07-08 00:38  TCP\Server\Debug\Server.pch

     文件    2597888  2014-07-08 00:38  TCP\Server\Debug\Server.pdb

     文件     295936  2014-07-08 00:38  TCP\Server\Debug\vc60.idb

     文件     118784  2014-07-08 00:38  TCP\Server\Debug\vc60.pdb

     文件       3545  2014-07-06 01:08  TCP\Server\Server.cpp

     文件       3265  2014-07-08 00:39  TCP\Server\Server.dsp

     文件        518  2014-07-08 00:39  TCP\Server\Server.dsw

     文件        682  2014-07-06 00:49  TCP\Server\Server.h

     文件         11  2014-07-06 01:04  TCP\Server\server.ini

     文件      50176  2014-07-08 00:39  TCP\Server\Server.ncb

     文件      48640  2014-07-08 00:39  TCP\Server\Server.opt

     文件        841  2014-07-08 00:38  TCP\Server\Server.plg

............此处省略9个文件信息

评论

共有 条评论