基于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
Connecting to port 8084
“;
cout<<“
Press ONLY ENTER to quit“;
cout<<“
===============================================
“;
FILE *fp = fopen(“server.ini““r“);//获取服务器端套接字地址
if(fp == NULL)
{
cout<<“
Unable 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<<“
Unable to find server IPaddress in server.ini“;
cout<<“
Please set server IPaddress“;
cout<<“
BYEBYE:“;
getch();
return 0;
}
MyMessObj.Init(sServerAddress.c_str()8084);//启动与服务器连接
if(!MyMessObj.IsConnected())
{
cout<<“
Unable to connect to the IPaddress specified in server.ini“;
cout<<“
Please check server IPaddress“;
cout<<“
Ready 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  TCPClientClient.cpp

     文件       3265  2014-07-08 00:39  TCPClientClient.dsp

     文件        518  2014-07-08 00:39  TCPClientClient.dsw

     文件        517  2014-07-06 00:51  TCPClientClient.h

     文件      41984  2014-07-08 00:39  TCPClientClient.ncb

     文件      48640  2014-07-08 00:39  TCPClientClient.opt

     文件        464  2014-07-08 00:38  TCPClientClient.plg

     文件    1429551  2014-07-08 00:38  TCPClientDebugClient.exe

     文件    1907872  2014-07-08 00:38  TCPClientDebugClient.ilk

     文件      78489  2014-07-08 00:38  TCPClientDebugClient.obj

     文件    4920964  2014-07-08 00:38  TCPClientDebugClient.pch

     文件    2614272  2014-07-08 00:38  TCPClientDebugClient.pdb

     文件     279552  2014-07-08 00:38  TCPClientDebugvc60.idb

     文件     110592  2014-07-08 00:38  TCPClientDebugvc60.pdb

     文件         11  2014-07-06 01:04  TCPClientserver.ini

     文件    1425455  2014-07-08 00:38  TCPServerDebugServer.exe

     文件    1905840  2014-07-08 00:38  TCPServerDebugServer.ilk

     文件      91479  2014-07-08 00:38  TCPServerDebugServer.obj

     文件    5373704  2014-07-08 00:38  TCPServerDebugServer.pch

     文件    2597888  2014-07-08 00:38  TCPServerDebugServer.pdb

     文件     295936  2014-07-08 00:38  TCPServerDebugvc60.idb

     文件     118784  2014-07-08 00:38  TCPServerDebugvc60.pdb

     文件       3545  2014-07-06 01:08  TCPServerServer.cpp

     文件       3265  2014-07-08 00:39  TCPServerServer.dsp

     文件        518  2014-07-08 00:39  TCPServerServer.dsw

     文件        682  2014-07-06 00:49  TCPServerServer.h

     文件         11  2014-07-06 01:04  TCPServerserver.ini

     文件      50176  2014-07-08 00:39  TCPServerServer.ncb

     文件      48640  2014-07-08 00:39  TCPServerServer.opt

     文件        841  2014-07-08 00:38  TCPServerServer.plg

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)