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,(
Ïà¹ØÎĵµ£º
zipÃüÁîµÄ»ù±¾Ó÷¨ÊÇ£ºzip [²ÎÊý] [Îļþ1] [Îļþ2]
¼òµ¥µÄÀý×Ó£º
°Ñ±¾Ä¿Â¼ÏµÄtestÎļþ´ò°ü³Étest.zipÎļþ£ºzip test.zip test/* £¬Èç¹ûÔÚÎļþÖÐÓþø¶ÔµÄ·¾¶£¬ÄÇôÔÚѹËõÎļþÖÐÒ²ÊǾø¶Ô·¾¶¡£¾ÍÊÇ˵£¬Èç¹ûÄã zip test.zip /hom ......
¸ñʽ:ls [options] [filename]
×÷ÓÃ:ÏÔʾĿ¼ÄÚÈÝ,ÀàËÆdosµÄdir
³£ÓòÎÊý:
-a ²»Òþ²ØÈκÎÒÔ"."×Ö·û¿ªÊ¼µÄÎļþ
-l ʹÓýϳ¤µÄ¸ñʽÏÔʾÐÅÏ¢
-r °´ÕÕÎļþÃûµÄÄæÐò´òÓ¡Êä³ö
-F ¼ÓÉÏÎļþÀàÐ͵Äָʾ·û
¸ñʽ:cat [options] [filename]
×÷ÓÃ:ÏÔʾÎļþµÄÄÚÈÝ,ÊÇconcat ......
ÕâÀï¼ÌÐøÉÏһƪ¹ØÓÚÏ̺߳¯ÊýµÄ½éÉÜ£º
int pthread_detach (pthread_t thread_handle);
Õâ¸öº¯ÊýµÄ×÷ÓÃÊÇÈÃthread_handleÖ¸ÏòµÄÄ¿±êÏß³ÌÔÚÖÐÖ¹µÄʱºòÇåÀí×Ô¼ºÓµÓеÄÊý¾Ý¡£ÔÚÕâ¸öº¯Êýµ÷ÓÃÖ®ºó£¬
²»ÄÜÔÙ¶Ôthread_handleʹÓÃpthread_join¡£
ÏÔ¶øÒ×¼ûµÄÊÇ£¬Èç¹ûÎÒÃÇûÓжÔд´½¨µÄÏ̵߳÷ÓÃpthread_detach£¬Õâ¸öÏß ......
ÕªÒª¡¿±¾Îļòµ¥½éÉÜÁËÈÎÎñµÄ¸÷ÖÖ״̬ºÍPCBµÄ½á¹¹£¬·ÖÎöÁ˼¸ÖÖÈÎÎñµ÷¶È²ßÂÔ£¬Ïê½âÁËschedule£¬²¢·ÖÎöÁËÈçºÎ½øÐнø³ÌÉÏÏÂÎÄÇл»£»Ëæºó·ÖÎöÁË2.6ÄÚºËÈçºÎÓÅ»¯ÁËÈÎÎñµ÷¶ÈËã·¨£»×îºó½éÉÜÁËÄں˶¨Ê±Æ÷µÄʵÏÖ»úÖÆºÍϵͳµ÷ÓõÄʵÏÖ¹ý³Ì¡£
¡¾¹Ø¼ü´Ê¡¿½ø³Ì¿ØÖÆ¿éPCB£¬RR£¬FIFO£¬Äں˵÷¶ÈËã·¨£¬ÈÎÎñÇл»£¬Äں˶¨Ê±£¬timer£¬ÈíÖжÏsoft ......
LinuxÌṩÁË´óÁ¿µÄÃüÁÀûÓÃËü¿ÉÒÔÓÐЧµØÍê³É´óÁ¿µÄ¹¤×÷£¬Èç´ÅÅ̲Ù×÷¡¢Îļþ´æÈ¡¡¢Ä¿Â¼²Ù×÷¡¢½ø³Ì¹ÜÀí¡¢ÎļþȨÏÞÉ趨µÈ¡£ËùÒÔ£¬ÔÚLinuxϵͳÉϹ¤×÷Àë²»¿ªÊ¹ÓÃϵͳÌṩµÄÃüÁî¡£ÒªÏëÕæÕýÀí½âLinuxϵͳ£¬¾Í±ØÐë´ÓLinuxÃüÁîѧÆð£¬Í¨¹ý»ù´¡µÄÃüÁîѧϰ¿ÉÒÔ½øÒ»²½Àí½âLinuxϵͳ¡£
²»Í¬Linux·¢ÐаæµÄÃüÁîÊýÁ¿²»Ò»Ñù£¬µ«Linux·¢ÐÐ°æ± ......