免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1182 | 回复: 0
打印 上一主题 下一主题

端口转发程序的简单实现(代码) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-27 13:11 |只看该作者 |倒序浏览

    这个程序是我去年写的了,因为以前的公布这两段代码的blog都已经停止使用了,所以重新把它整理到我这个blog中。这些代码都是我初学socket编程的时候练手用的,因为当时的水平很有限,代码虽然实现了简单的转发功能,但是许多地方还欠妥当,并且也不高明。希望朋友们更多的是提出修改的建议,或者能发出更好的代码。感激不尽!
程序的作用是将所有发到本地监听端口的数据发送到指定远程地址指定端口
也就是一个tcp端口转发程序
这个程序中pm.cpp是主线程包括了main函数
而ResendTread.cpp是最核心的部分
用来处理一个转发任务
测试该程序,可以找两个点对点通信的程序进行通信其信息经过转发程序pm转发
望有经验的高手可以给建议。
邮箱
realphenix@126.com
***************************************************************************
/*--- pm.h ---*/
#include
#include
#include
#include "fun.h"//Declare all function
#include "ResendThread.h"//Declare the thread function use for resend
***************************************************************************
/*--- pm.cpp ---*/
#include "pm.h"//Declare all function
//The important global variable
EPARAM ExternalParameter;
SOCKET sPARAM;
int main(int argc, char* argv[])
{
//Check the parameters
if( (ExternalParameter = CheckParameter(argc,argv)).error == 1 )
{
//If the number of parameters are incorrect, get out!
return 0;
}
//Initialize the winsock use WSA()
if( WSA())
{
//When the WSA() failed to initialize the winsock, get out!
return 0;
}
//Create the listening socket
SOCKET sock_l = SOCKET_ERROR;
sock_l = socket(AF_INET, SOCK_STREAM, 0); //tcp listen socket
sockaddr_in addr_l;//Local address for listen
addr_l.sin_addr.s_addr = INADDR_ANY;
addr_l.sin_family = AF_INET;
addr_l.sin_port = htons(ExternalParameter.localport);
//Bind the sock_l to local address and set it to listening mode
if ( SOCKET_ERROR == bind(sock_l, (sockaddr *)&addr_l, sizeof(addr_l)) )
{
std::cout

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34431/showart_265963.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP