一个简单的QQ聊天代码

#include <winsock2.h>
#include <windows.h>
#include <iostream.h>
#pragma  comment (lib,"ws2_32")

#define  locport       8000
#define  gatport       11282
#define  maxsize     40*1024

struct   sockaddr_in sin[2][4]={ {0}};
SOCKET   sock[2][2]={ {0}},slisten=INVALID_SOCKET;
BOOL     local;
int      addrlen=sizeof(struct sockaddr_in);

void start()
{
 cout<<"            ---------------------------------------------------/n";
 cout<<"              ||                                           || /n";
 cout<<"              ||              QQtcp  (TCP转发)             || /n";
 cout<<"              ||                                           || /n";
 cout<<"            ---------------------------------------------------"<<endl;
}

void usage()
{
    cout<<"/nUsage:/r/n/tQQtcp  -l[-g]  ip  port"<<endl;
 cout<<"/tQQtcp  -h"<<endl;
 cout<<"Example:/r/n";
 cout<<"/tQQtcp  -l  127.0.0.1       11282"<<endl;
 cout<<"/tQQtcp  -l  192.168.0.1     11282"<<endl;
 cout<<"/tQQtcp  -g  61.144.238.156  8000"<<endl;
 cout<<"Attention:"<<endl;
 cout<<"/t选项 -l :  运行于本机上,ip填网关地址,port必须为11282(网关监听端口);"<<endl;
 cout<<"/t           QQ客户端所填服务器地址为127.0.0.1,端口为8000(本地监听端口);"<<endl;
    cout<<"/t选项 -g :  运行于网关上,ip填腾讯服务器地址,port为腾讯服务器端口;"<<endl;
 cout<<"/t选项 -h :  查阅扩展功能及相关帮助文件。"<<endl;
}

DWORD WINAPI t2u(LPVOID param)
{
 UNREFERENCED_PARAMETER(param);
 fd_set   fdread,fdwrite;
 int      ret,ileft,idx,istbcs=0,iret;
 char     msgrecv[maxsize]={0},msgsend[maxsize]={0};

 while(1)
 {
  FD_ZERO(&fdread);
  FD_ZERO(&fdwrite);
  FD_SET(sock[1][0],&fdread);
  FD_SET(sock[1][1],&fdwrite);
  if((ret=select(0,&fdread,&fdwrite,NULL,NULL))==SOCKET_ERROR)
  {
   cout<<"/nThread 1 select error: "<<GetLastError()<<endl;
   break;
  }
  if(ret>0)
  {
   if(FD_ISSET(sock

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值