基于TCP的简单一对一聊天程序设计
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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个文件信息
#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个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)