摘要:
初始化SOCKET(客户端) 连接到host的port端口/////////////////////////////////////////////int InitSocket_Client(unsigned char *host,int port){ int sockfd;struct hostent *he;struct sockaddr_in srvaddr; int connectflag... 阅读全文
摘要:
传值:#include <stdio.h>#include <pthread.h>void thread(int i){ int k; for (k=0;k<10;k++) { printf("this is %d pthread.\n",i); }}int main(){ pthread_t pthread_id; int i,ret; int m=2; ret=p... 阅读全文
摘要:
struct S1 { char c; int i; }; 问sizeof(s1)等于多少? 聪明的你开始思考了,char占1个字节,int占4个字节,那么 加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错 的!VC6中按默认设置得到的结果为8。 Why为什么受伤的总是我 请不要沮丧,我们来好好琢磨一下sizeof的定义——sizeof的结果等于对... 阅读全文
摘要:
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode) 阅读全文
摘要:
int SelectRecv(int sockdf, unsigned char *data, int len,int mark){ int retval; int flag=-1; fd_set rfds; struct timeval timeout; timeout.tv_sec=0; timeout.tv_usec=2; FD_ZERO(&rfds); FD_SET(sockdf... 阅读全文
摘要:
代码实例中的服务器通过socket连接向客户端发送字符串"Hello, you are connected!"。只要在服务器上运行该服务器软件,在客户端运行客户软件,客户端就会收到该字符串。
无连接的客户/服务器程序的在原理上和连接的客户/服务器是一样的,两者的区别在于无连接的客户/服务器中的客户一般不需要建立连接,而且在发送接收数据时,需要指定远端机的地址。
阅读全文
摘要:
阻塞函数在完成其指定的任务以前不允许程序调用另一个函数。例如,程序执行一个读数据的函数调用时,在此函数完成读操作以前将不会执行下一程序语句。当服务器运行到accept语句时,而没有客户连接服务请求到来,服务器就会停止在accept语句上等待连接服务请求的到来。这种情况称为阻塞(blocking)。而非阻塞操作则可以立即完成。比如,如果你希望服务器仅仅注意检查是否有客户在等待连接,有就接受连接,否则就继续做其他事情,则可以通过将Socket设置为非阻塞方式来实现。非阻塞socket在没有客户在等待时就使accept调用立即返回。
阅读全文
摘要:
网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。
阅读全文
摘要:
int recvsocket=InitSocket_Server(RECVPORT);//初始化接受端口ret=pthread_create(&pthread_id,NULL,(void *)pthread_1,(void*)&recvsocket);其中pthread_1的定义如下: void pthread_1(int *socket) { SelectRecv(socket,... 阅读全文
摘要:
应用层: #include <unistd.h>1、unsigned int sleep(unsigned int seconds); 秒级2、int usleep(useconds_t usec); 微秒级:1/10^-6 #define _POSIX_C_SOURCE 199309 #include <time.h> 3、int nanosleep(const st... 阅读全文
摘要:
由于LINUX下应用层不能直接访问寄存器,只要通过驱动程序作为桥梁 // 驱动程序:#ifndef __KERNEL__#define __KERNEL__#endif#ifdef MODULE#define __MODULE__#endif#include <module.h>#include <linux/fs.h>#include <linux/iobuf.h&... 阅读全文
摘要:
C51存贮器类型 C51编译器完全支持8051微处理器及其系列的结构,可完全访问MCS-51硬件系统所有部分。每个变量可准确地赋予不同的存贮器类型(data,idata,pdata,xdata,code)。访问内部数据存贮器(idata)要比访问外部数据存贮器(xdata)相对要快一些,因此,可将经常使用的变量置于内部数据存贮器中,而将较大及很少使用的数据单元置于外部数据存贮器中。 存贮器类型描 ... 阅读全文
摘要:
void Openint(void) //打开中断{ EA=1;//开中断 IT0=1; //外部中断0下降沿触发 IT1=1; //外部中断1下降沿触发 EX0=1;//外部中断0 EX1=1;//外部中断1 ET0=1;//开timer0中断 ES=0;//开串口中断}void IntGradeSet(void) //设置优先级{ PS=0; //串口优先级 PT0=0; //timer0中... 阅读全文
摘要:
#include "dos.h"#include "stdlib.h"#include "stdio.h"#define PORT 0void SendFile(char *fname); /* 发送文件*/void Send(int s); /*发送一个字节*/void SendFileName(char *fname); /*发送文件名*/void ReceiveFile(); /*接收文件*... 阅读全文
摘要:
进程的间隔计时器能够提供的时间精度为微秒,对于大多数的应用来说,应该已经足够!
阅读全文
摘要:
在程序中可能需要某段代码连续执行,不想被其他线程打断。
对于不能被打断的操作我们叫它原子操作,为了能使线程中的某段代码成为原子操作,
实现这个问题有要使用临界区加锁的办法 阅读全文
摘要:
用pthread_create函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。
属性结构为pthread_attr_t,它同样在头文件pthread.h中定义,属性值不能直接设置,须使用相关函数进行操作,初始化的函数为 pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省的堆栈、与父进程同样级别的优先级 阅读全文
摘要:
1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远... 阅读全文
摘要:
一.丢失引导:华恒论坛在新版本的ppcboot中的说明如下: 近来不断有客户反映,s3c2410的一些开发板有时会莫名的丢失引导。一开始我们以为是客户不熟悉操作,不小心误操作的结果,但经过一段时间的多方检测,发现这里不仅仅是误操作这么简单;我们通过对这方面的问题收集,并结合客户反馈的若干想法和建议,我们总结后发现这不单单是s3c2410相关开发板的问题,还包括ppc8250、xscale425、s... 阅读全文
摘要:
1、 修改CPU/2410/中的start.s文件#define pWTCON 0x53000000 原代码: ldr r0, =pWTCON mov r1, #0x0 关闭看门狗str r1, [r0]改为: ldr r0, =pWTCNT ldr r1, =0x7724 大约15秒复位 str r1, [r0] ldr r0, =pWTCON ldr r1, =0xFF39 打开看门狗s... 阅读全文