资源简介
基于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个文件信息
相关资源
- Modbus协议官方文档中、英文全
- Omron ETN21模块进行modbustcp通讯
- 组态王中S7-300TCP驱动
- 基于Apache Mina实现的TCP长连接和短连接
- CVI下的TCP服务器和客户端
- 代码客:G-TcpServer(IOCP) 1.0 正式版及
- TCP 发包工具(windows)
- VxWorks TCPIP协议栈
- socket小工具(可方便建立TCP UDP的soc
- vc 编写的基于TCP协议的客户/服务器
- 基于CSocket的多人聊天室
- 采用WINSOCK2 编写的TCP/UDP通信程序
- Modbus TCP Client
- 易语言 TCP使用HTTP、SOCKES5代理IP。
- 西门子S7-1200 MODBUS-TCP通讯编程
- 200SMART Modbus-TCP通信程序演示-轮询(多
- TCP_UDP对结构体加密数据传输
- 基于PIC的TCP/IP网络协议和zigbee无线传
- 欧姆龙PLC tcp通信工具
- 欧姆龙以太网通讯TCP/UDP及欧姆龙PLC程
- 流媒体相关协议标准RTP/RTSP/RTCP PDF文档
- 航海模拟器中DCPA TCPA的算法
- TCPMP 支持ce6.0的播放器
- TCP/IP协议详解3卷全_高清_带书签
- stm32103c8t6ESP8266串口转WIFI模块TCP服务器
- DOS下的TCP-IP协议库文件原代码.rar
- 《TCP/IP详解卷2:实现》pdf
- 《TCP/IP:协议分析与应用编程》课后
- Modbus—TCP协议
- 计算机网络socket编程实验
评论
共有 条评论