Linux socket API ʹÓÃʵÀý
°´ÏÂÃæ²½ÖèÀ´×ö£¬¿ÉÒÔ¼òµ¥ÌåÑésocket APIµÄʹÓ᣾ßÌ庯ÊýµÄÒâÒ壬Çë²Î¿¼ÆäËû˵Ã÷Îĵµ¡£
ÏÂÃæµÄº¯ÊýÖ±½Ócopy, paste¾Í¿ÉÒÔÁË¡£
Step1. ´´½¨Server ³ÌÐò¡£
н¨Îļþsocket_s.c, ÄÚÈÝÈçÏ£º
-------------------------------------------
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 2323
#define SERVER_IP "192.168.1.101"
int main()
{
int s, s2;
struct sockaddr_in addr;
struct sockaddr_in addr2;
char buffer[256];
int sin_size;
if((s=socket(AF_INET, SOCK_STREAM, 0))<0)
{
printf("creat socket error!\n");
perror("socket");
exit(1);
}
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER_IP);
bzero(&(addr.sin_zero), 8);
if(bind(s, (struct sockaddr *)&addr, sizeof(struct sockaddr))==-1)
{
perror("bind socket error!");
exit(1);
}
if(listen(s, 10) == -1)
{
perror("LISTEN");
exit(1);
}
while(1)
{
sin_size = sizeof(struct sockaddr_in);
printf("server is run\n");
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ£º
±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾Ñ飨Õâ¸ö»¹µ ......
½ñÌìʹÓÃselect±à³Ì£¬ÎÊÌâºÜ¶à£¬ÒÔÇ°ÕæµÄûÓÐ×ÐϸÑо¿¹ý¡£
³öÏÖÁËÒÔϼ¸¸öÎÊÌâ
1 recvfromÔÚ½ÓÊÕʱ£¬Ìṩ¸øÏµÍ³µ÷ÓõÄ×îºóÒ»¸ö²ÎÊý£¬¿Í»§¶ËµÄµØÖ·½á¹¹£¬Æä³¤¶È±ØÐë½øÐгõʼ»¯£¬Èç¹ûΪ0£¬Ôò²»ÄܽÓÊÕÊý¾Ý¡£
2 selectµÄµÚÒ»¸ö²ÎÊýΪËùÓмàÊÓµÄÎļþÃèÊö·ûµÄ×î´óÖµ+1£¬¶ø²»ÊǼàÊÓµÄÎļþÃèÊö·û¸öÊý+1¡£
3 ²»Òª¼àÊÓÄÇЩ¾³£¿ÉÓ ......
¶ÔÓÚ¶¯Ì¬Á´½Ó¿âºÍ¾²Ì¬Á´½Ó¿âµÄ¸ÅÄîÒÔ¼°Á´½Ó·½Ê½²»ÔÙÀÛ׸¡£Ö±½Ó¿ªÊ¼ÉÏ´úÂëºÍ½øÐбàÒë¡£-__-||¡£
´úÂëºÜ¼òµ¥£¬ºáÊú¾ÍÈý¸öµ±¼ÒµÄ¡£
¿âÍ·Îļþcorey.hpp:
#ifndef LIBRARY_H
#define LIBRARY_H
void add(int,int,int*);
#endif
¿âʵÏÖÎļþcorey.cpp
#include "corey.hpp"
void add(int a,int b,int *c){
int total=a ......
linux³£ÓÃÍ·ÎļþÈçÏ£º
POSIX±ê×¼¶¨ÒåµÄÍ·Îļþ
<dirent.h>
Ŀ¼Ïî
<fcntl.h> Îļþ¿ØÖÆ
<fnmatch.h> ÎļþÃûÆ¥ÅäÀàÐÍ
<glob.h>
·¾¶ÃûģʽƥÅäÀàÐÍ
< ......
Ŀǰ£¬GCC¿ÉÒÔÓÃÀ´±àÒëC/C++¡¢FORTRAN¡¢JAVA¡¢OBJC¡¢ADAµÈÓïÑԵijÌÐò£¬¿É¸ù¾ÝÐèҪѡÔñ°²×°Ö§³ÖµÄÓïÑÔ¡£±¾ÎÄÒÔÔÚRedhat LinuxÉϰ²×°GCC4.1.2ΪÀý(ÒòÔÚÏîÄ¿¿ª·¢¹ý³ÌÖÐÒªÇóʹÓã¬Ã»ÓÐÓÃ×îеÄGCC°æ±¾)£¬½éÉÜGCCµÄ°²×°¹ý³Ì¡£
°²×°Ö®Ç°£¬ÏµÍ³ÖбØÐëÒªÓÐcc»òÕßgccµÈ±àÒëÆ÷£¬²¢ÇÒÊÇ¿ÉÓõ쬻òÕßÓû·¾³±äÁ¿CCÖ¸¶¨ÏµÍ³ÉϵıàÒëÆ÷¡£È ......