易截截图软件、单文件、免安装、纯绿色、仅160KB

linux socket小例

/*
socket select模型,服务端
绝大多数注释自己写的,参考man
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/un.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <netinet/in.h>
#define SERVPORT 3333
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 100
int main()
{
/*
struct sockaddr_in {
//地址族AF_INET(IPv4)AF_INET6(IPv6)AF_LOCAL(UNIX域协议)AF_LINK(链路地址协议)AF_KEY(密钥套接字socket)AF_APPLETALK(ddp)
   short int sin_family;
//端口号
   unsigned short int sin_port;
*
* struct in_addr {
* unsigned long s_addr;
* }
*
//地址
struct in_addr sin_addr;
unsigned char sin_zero[8];
}
eg:
struct sockaddr_in ina;
bzero(&ina,sizeof(ina));
ina.sin_family=AF_INET;
ina.sin_port=htons(23);
ina.sin_addr.s_addr = inet_addr("132.241.5.10");
AF_INET和PF_INET略有差异
*/
struct sockaddr_in server_sockaddr,client_sockaddr;
int sin_size,recvbytes;
fd_set readfd;
fd_set writefd;
int sockfd,client_fd;
char buf[MAXDATASIZE];
/*
int socket(int domain, int type, int protocol);
domain:PF_INET...
type:SOCK_STREAM,SOCK_STREAM,SOCK_RAW...
protocol:/etc/protocols tcp,udp...
*/
if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1){
perror("socket");
exit(1);
}
printf("socket success!,sockfd=%d\n",sockfd);
server_sockaddr.sin_family=AF_INET;
server_sockaddr.sin_port=htons(SERVPORT);
server_sockaddr.sin_addr.s_addr=INADDR_ANY;
//set to 0
bzero(&(server_sockaddr.sin_zero),8);
/*
int bind(int sockfd, const struct sockaddr *my_addr,socklen_t addrlen);
sockfd:created by socket
*my_addr:convert from sockaddr_in
addrlen:sizeof(sockaddr)
*/
if(bind(sockfd,(


相关文档:

linux api笔记(3):线程(一)

本文中将讲述linux环境编程中线程的使用。不说废话直接上代码:
#include <pthread.h>
#include <assert.h>
struct ThreadData
{
int i;
};
void * ThreadProc(void* arg)
{
ThreadData* data = static_cast<ThreadData*>(arg);
//do something

pthread_exit(data);
}
int main() ......

【Linux学习笔记】 常用命令1

格式:ls [options] [filename]
作用:显示目录内容,类似dos的dir
常用参数:
   -a 不隐藏任何以"."字符开始的文件
   -l 使用较长的格式显示信息
   -r 按照文件名的逆序打印输出
   -F 加上文件类型的指示符
格式:cat [options] [filename]
作用:显示文件的内容,是concat ......

linux 安装Kmplayer播放器


安装Kmplayer播放器
(作者/l4nneret)为了能在 Linux 下也能播放多媒体文件,于是安装据称很强悍的 Kmplayer 播放器。过程如下:在 http://www.mplayerhq.hu/MPlayer/ 这里看到 Kmplayer 的主程序已经更新到了 1.0rc2 版。
下载主程序:MPlayer-1.0rc2.tar.bz2
两个解码包:all-20071007.tar.bz2 和 windows-all-2007 ......

关于Linux的视频编程(v4l2编程)(转)


前言:目前正在忙于ARM平台的Linux应用程序的开发(其实是刚刚起步学习啦)。底层的东西不用考虑了,开发板子提供了NAND Bootloader,和Linux 2.6的源码,而且都编译好了。自己编译的bootloader可以用,但是Linux编译后,文件很大,暂且就用人家编译的系统,先专心写应用程序 吧。。
正文:要做的任务是,把一块板子上的 ......

linux api笔记(7):系统调用如何摆脱信号的干扰

在linux环境下编程有一个很让人头疼的问题就是信号对系统调用的干扰,在系统调用过程中如果受到信号的干扰,
部分系统调用会将errno设置成EINTR,我们不得不编写下面的错误处理代码来防止这种情况的发生:
syscall:
int ret = syscall(...);
if (ret < 0 && EINTER == errno)
goto syscall;
el ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号