socket(一)

linux socket 函数 总结

#include <sys/socket.h>

#include <sys/types.h>

#include <error.h>

#include <netinet/in.h>//包含AF_INET定义需要的数据结构

#include <arpa/inet.h>//包含AF_INET定义的一些操作函数

#include <netdb.h>//获取端口对应的服务信息,以及得到客户端主机信息函数

 

struct hostent {

  char * h_name;//主机名

  char ** h_aliases;//别名列表

  int h_addrtype;//地址类型

  int h_length;//地址字节长度

  char ** h_addr_list;//地址列表 该一级指针可以转换为struct sin_addr 提供给bind函数或者connect使用

};

struct hostent *gethostbyaddr(const * addr, size_t len, int type);

struct hostent *gethostbyname(const char * name);

//example

char * localhost = "localhost";

gethostbyname(localhost);

sethostbyaddr();

 

struct servent {

  char * s_name;//服务名

  char ** s_aliases;//服务别名列表

  int s_port;//端口号

  char * s_proto;// 协议类型

};

struct servent * getservbyname(const char * name, const char * proto);

struct servent * getservbyport(int port, const char * proto);

 

struct sockaddr_in {

  short  sin_family;//AF_INET

  unsigned short sin_port;//端口号

  struct in_addr sin_addr sin_addr;//internet 地址

};

struct in_addr {

  long s_addr;

};

//http ftp库函数介绍

yum install libcurl-devel

include <curl/curl.h>

curl_global_init()->curl_easy_init() ->curl_easy_setopt()->curl_easy_perform()->curl_easy_cleanup()

//初始化libcurl       获取libcurl操作符   设置传输选项          完成传输任务               释放内存

smtp(传输邮件协议) pop(接收电子邮件协议) imap(通过internet获取邮件信息的库函数)函数库

libESMTP : yum install libesmtp-devel

#include <libesmtp.h>//包含libesmtp库

libspopc : yum install libspopc-devel

#include <libspopc.h>

及时通讯库----IM

libpurple

****************************************************************************************************************************************************************************************
 

TCP与UDP的区别

TCP与UDP的区别

基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式TCP保证数据正确性,UDP可能丢包 TCP保证数据顺序,UDP不保证

 

具体编程时的区别

socket()的参数不同UDP Server不需要调用listen和acceptUDP收发数据用sendto/recvfrom函数TCP:地址信息在connect/accept时确定
UDP:在sendto/recvfrom函数中每次均 需指定地址信息UDP:shutdown函数无效与linux的socket编程有关的一些简单有效的资料,请参考:
http://www.aka.org.cn/Lectures/002/Lecture-2.1.8/Lecture-2.1.8/index.htm

你可能感兴趣的:(数据结构,linux,socket,struct,tcp,internet)