当前位置:首页 » 操作系统 » 网络调试源码c

网络调试源码c

发布时间: 2022-05-29 02:13:44

Ⅰ 求c语言重启网卡源码

此前,提到为了实现修改IP(一网卡对应多个IP,不重启电脑让修改立即生效),我尝试在VC6.0上调试采用WMI实现的修改IP的程序,编译不过的情况屡屡出现,在网上搜索了很久就是没有找到彻底的解决方法,最后只好放弃通过WMI来设置IP了!
那么,另一个思路(修改注册表中IP项,然后重启网卡)是否能行呢?于是,继续寻求重启网卡的方法,没想到居然找到了一些不错的资料。现整理如下,供日后参考。
(1)《vc++ 修改IP地址DNS 附带源码》实例代码,来自csdn下载频道,我下载下来调试过了,貌似和我上面提及的思路一致:通过重启网卡来让设置的IP立即生效。
(2)《程序禁用启用网络/网卡》是一个封装好的函数,我复制到本地并适当修改之后,就调试通过了!正好是我想要的:)关于函数中的配置文件ConfigInfo.ini,其内容貌似如下所示:

[cpp] view plain
[NETCARD]
TYPE=PCI
NAME=NVIDIA nForce Networking Controller

(3)《实战DeviceIoControl 之五:列举已安装的存储设备》这篇文章详细地介绍了如何访问设备,有代码有注释(作者另外的几篇《实战DeviceIoControl 》也很不错),是很好的入门教材!
(4)《Windows下不重启机器程序修改IP的三种方法》一篇总结性的文章,对几种实现方法做了简介,让我们有一个全局的认识。

Ⅱ 如何在windows下用VC++进行网络编程调试clinet.c和server.c

先给除服务端代码:
#include <stdio.h>
#include <Winsock2.h>

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}

/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}

SOCKET sockSrv=socket(AF_INET, SOCK_DGRAM, 0);

SOCKADDR_IN addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(5050);
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

char recvBuf[200];
char sendBuf[200];
char Buf[400];

SOCKADDR_IN addrCli;
int len = sizeof(SOCKADDR);
int a=1;

for(;;)
{
recvfrom(sockSrv,recvBuf,200,0,(SOCKADDR*)&addrCli,&len);
if('q'==recvBuf[0])
{
sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR*)&addrCli,len);
printf("chat over !");
break;
}
sprintf(Buf,"%s say : %s",inet_ntoa(addrCli.sin_addr),recvBuf);
printf("%s\n",Buf);
if(a==1)
printf("Say some words ('p' to quit) : \n");
gets(sendBuf);
sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrCli,len);
a++;
}
closesocket(sockSrv);
WSACleanup();
}

下面是客户端代码:
#include <stdio.h>
#include <Winsock2.h>

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}

/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}

SOCKET sockCli=socket(AF_INET,SOCK_DGRAM,0);

SOCKADDR_IN addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(5050);
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

char recvBuf[200];
char sendBuf[200];
char Buf[400];

int len=sizeof(SOCKADDR);
int a=1;

for(;;)
{
if(a==1)
printf("Say some words ('p' to quit) :\n");
gets(sendBuf);
sendto(sockCli,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrSrv,len);
recvfrom(sockCli,recvBuf,strlen(recvBuf)+1,0,(SOCKADDR*)&addrSrv,&len);

if('q'==recvBuf[0])
{
sendto(sockCli,"q",strlen("q")+1,0,(SOCKADDR*)&addrSrv,len);
printf("chat over !");
break;
}
sprintf(Buf,"%s say : %s",inet_ntoa(addrSrv.sin_addr),recvBuf);
printf("%s\n",Buf);
a++;
}

}

以上程序使用的是UDP协议,如果想要TCP协议的,过两天我也可以给你发上来。

Ⅲ 哪位有编写过网络调试助手的源代码

根据TCP/IP编程,用.net编写比较容易,用户界面可以参考现成的,例如格西烽火、网络调试助手等都不错。

Ⅳ C语言 怎么调试程序

一、在keil中调试c语言程序

1、打开我们的程序,点击菜单栏右侧的start/stopdebug..按钮,进入调试模式,如下图。

Ⅳ 怎样调试GCC源码

一、linux程序gcc编译步骤:
Gcc编译过程主要的4个阶段:
l 预处理阶段,完成宏定义和include文件展开等工作;(.i)
l 根据编译参数进行不同程度的优化,编译成汇编代码(.s.S)
l 用汇编器把汇编代码进一步生成目标代码(.o)
l 用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件
格式:
l gcc -E test.c//预处理阶段
l Gcc -S test.c//编译阶段
l Gcc -c test.c//汇编阶段
l Gcc -o test test.c//链接阶段
二、Linux程序gdb调试步骤:
Gdb的功能:
l 设置断点
l 监视程序变量的值
l 程序的单步执行
l 显示、修改变量的值
l 显示、修改寄存器
l 查看程序的堆栈情况
l 远程调试
Gdb调试过程:
1、程序经过预处理后,即进入编译阶段,进入编译阶段,首先声明编译:
2、格式:gdb -o test test.c -g
3、进入编译:gdb test
4、显示需要编译调试的源程序:l(list)//list filename
5、设置断点:b(break)行号
6、查看设置的断点:info b
7、运行调试程序:run
8、跳到下一个断点:c(continue)
9、单步运行的话使用:n(next)/s(step into)跳到函数体 //区别在与:next执行函数体,而step不执行函数体
10、调试过程中查看某个变量的变化:print i (每次都要手动设置)//display i(设置一次一直尾随,直到用“undisplay 变量标号” 停止)
11、退出当前的调试使用finish 跳出函数
12、清楚断点 clear 行号
13、Delete 断点信息序号// 删除所有断点或设置的要删除的断点
14、退出调试 q
15、b num if i==20 设置断点的触发条件
16、condition num i==50 改变断点的触发条件

Ⅵ 网站源代码如何在线进行调试

开发调试环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码
由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA
一、修改Android Studio(以下简称AS)的内存配置

因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

并将其作为要使用的SDK的java SDK。如下图

三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm development/tools/idegen/

在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh

等待出现类似下面的结果:
Read excludes: 5ms
Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:
<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<excludeFolder url="file://$MODULE_DIR$/art" />
这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在AS中打开源码根目录下新生成的android.ipr

如果在导入时AS出现

则建议按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具体内容如下图:

四、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK

②设置'Moles'的依赖

先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

其它版本的代码在添加frameworks时可能会显示成:

没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.
如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.
五、DEBUG源码
我们可以通过给刚导入的工程在'Moles'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

可以按照上图中'1'和'2'来添加Android Framework支持.

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图所示的图标
在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.
六、其它
代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.
我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。
也可以考虑使用build.gradle来解决该问题。

Ⅶ cygwin下编译,调试C源程序

你是初学者吧,没关系,很简单的。
cygwin我没用过,大概是别人给套了个可视化编程界面了。
1.你运行cygwin这个软件,然后“文件/打开/”把你准备好的C源代码加载到这个软件中。(就好比我们平时用word时,先运行word软件,然后把你的文档加如入并进行编辑。)
2.在软件界面上(一般在:工具栏)找一个功能为“运行”的按纽。

准备知识:
写一个程序一般分以下步骤:
1.编辑(就是把你的源代码写出来,你可以用“记事本”写,当然一般编程工具cygwin也会提供编辑环境)
2.编译+连接(你只要点个按纽就行,这个任务完全由cygwin完成,你不必管它怎么完成这个任务的。
==============================
那么,编译是什么意思呢?
==============
由于你是初学者,我只能用尽可能通俗的话给你解释一下,这种解释是不够准确的。因为计算机本身只认识二进制指令,就是0/1的序列,每个0/1的序列都在计算机设计时,就赋予了一定的含义。比如:设计师可以把0001表示作个加法,用0000表示作个减法。但是如果人们用0/1的序列来表达我们的需求,显然非常麻烦。于是,后来一些科学家就发明了一种近似英语的计算机语言C,很明显如果要让计算机也明白C表达的意思,我们就必须把C翻译成0/1的序列。那么,编译就可以理解为“翻译”。
[打个比方1]这就好比,你是个中国人,你只会说中文,计算机是个美国人,它只会说英语。你要请计算机给你做件事,你可以用中文写好你的要求,然后请个翻译,把你的要求翻译成英语。)
======
调试是什么呢?
=====
调试分两个层面:(沿用上面的比方1)
1.语法层
你用中文表达你的要求时,可能你的用语不够规范,或写了错别字,使得你
请的翻译不理解你的意思,没办法翻译下去。这时,这个翻译就会通知你说:“对不起,你这个字是不是写错了”。于是,你就“调整调整,修改修改,才试一试”(“调试”由此得名),然后才请翻译进行翻译。
2.语意层
由于你的疏忽,你把要求表达错了。举个离谱点的例子:你本意是打算请计算机帮你买张去北京的火车票的,结果你不小心,写成了买张去上海的火车票。出现这个错误,翻译没方法告诉你,只有等计算机把一张上海的车票给你,你才意识到,于是你重新调试,才执行。

Ⅷ 如何调试跟踪Android Framework源代码

本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的Java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。

一、准备工作

确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Android SDK / ADT

即,机器上已经安装了Eclipse下Android应用开发所需的环境。如果还未配置,移步《搭建Windows下Android应用开发环境——Eclipse/Android/ADT》。

另外,为了跟踪调试Android源码,你还需要有Android源码,并有源码的编译环境,可以是:

  • 虚拟机环境 虚拟机中安装Linux,Linux下编译Android源码。此环境下,如果要在宿主机的Eclipse中调试,还需要把Android的源码路径共享出来,宿主机可访问到;

  • 有单独的可编译Android的网络环境 在你的客户端的机器上访问服务器共享出来的Android的源码路径;

  • Linux环境下直接通过Eclipse跟踪调试本机上的Android源码。

  • 注意:不管哪种工作方式,Android源码要都是已经编译过的,且编译时采用的是Eng模式(vs User mode)。编译Android Platform和Kernel的过程,可参考《Ubuntu10.10下编译Android2.2平台》及《Ubuntu10.10下编译Android2.2内核》。

    二、基本设置

    准备工作完毕之后,现在做一些基本的设置。

    1. 把Android源码路径<Android_ROOT>下的developmentideeclipse中的.classpath文件复制到<Android_ROOT>下;如果需要在模拟器中进行调试的话,需要复制三个img(具体方法见http://wenku..com/view/26d9063c87c24028915fc366.html)

    2. 修改Eclipse的设置

    修改eclipse.ini文件,更改下列内容:

    [plain]view plain

  • -Xms40m

  • -Xmx384m

  • 改为:

    [java]view plain

  • -Xms128m

  • -Xmx512m

  • 这里增大最小Java堆大小到128MB,增大最大Java堆大小到512MB。

    三、Eclipse中创建工程

    1. File > New > Java Project

Ⅸ 如何在Visual C++ 6.0调试多源代码C程序!

首先是对于头文件,要是系统给定的就不需要进行调试了;要是自己写的头文件,你应该打开头文件,然后运行就可以了,我用的是中文界面,英文的也没有关系,你只要单击那个红色的感叹号就行了。只要把头文件打开,对于你说的程序函数部分,我想你可能是要表达一个子函数的意思(因为没有听过这个名词),要是子函数是单独在一个文件中的时候,子函数应该在第二步进行调试。当然要是子函数写在主函数(即main())只要一起运行就可以了,这个过程中会弹出许多对话框,你只要全确定就可以(想换名字是另一回事了),要是有错会报的。 当然也可以不必运行,按ctrl+F7只进行编译也行

Ⅹ 如何在电脑上调试b2b2c源代码

第一步,调试的准备。用C#语言编写一个测试dll文件的程序,由于dll源程序是c的,且运行结果是黑屏的,所以C#代码也是运行在黑屏的console环境下。完整代码如下。using System;using System.Collections.Generic;using System.Linq;using System....

热点内容
java的大小写 发布:2024-10-28 13:17:58 浏览:284
yocto交叉编译 发布:2024-10-28 12:59:41 浏览:189
案例算法 发布:2024-10-28 12:30:55 浏览:29
鸿蒙编译器mac 发布:2024-10-28 12:30:12 浏览:528
我的世界pc国际服服务器 发布:2024-10-28 12:30:03 浏览:669
java反射私有属性 发布:2024-10-28 12:29:02 浏览:577
微软安卓编译软件 发布:2024-10-28 12:16:05 浏览:565
苹果软件如何关闭存储 发布:2024-10-28 12:08:57 浏览:626
ie设置代理服务器地址 发布:2024-10-28 11:52:37 浏览:658
如何制作一个好的服务器 发布:2024-10-28 11:45:07 浏览:402