linx网络编程
tcp,udp,广播,组播
45°的阳光
虽然你变秃了,但是你变强了
展开
-
使用socket实现进程间通信
socket除了可以实现网络通信之外,还可以实现进程间通信,与网络通信一样,以一个服务端和一个客户端的方式存在一、与网络通信上使用的不同之处1.创建socket的过程原创 2020-12-16 18:01:37 · 4450 阅读 · 2 评论 -
tcp-并发模型
服务端:#include<stdio.h>#include<stdlib.h>#include<sys/select.h>#include<sys/socket.h>#include<netinet/in.h>#include<sys/types.h>#define PORT 8888static int init_socket();static void SELECT_IO(int *fd_array,int f原创 2020-12-14 18:54:18 · 162 阅读 · 0 评论 -
setsockopt函数用法
一、函数原型int setsockopt(int sockfd, int level, int optname,const void *optval, socklen_t optlen)参数1:sockfd ------文件描述符参数2:level ------三个选项:1.SOL_SOCKET 通用套接字选项 2.IPPROTO_IP ip层选项 3.IPPROTO_TCP TCP层原创 2020-12-11 17:43:29 · 1019 阅读 · 0 评论 -
(Socket通信)bind:address already in use
socket通信时服务端和客户端连接后,用Ctrl+c结束服务端程序再次运行时出现如下错误截图原因分析:端口被占用,在服务端终止之后,会有一个TIME_WAIT的状态,再次打开会出现:bind:address already in use。解决办法:服务器端可以使用REUSEADDR套接字选项,这样就可以不必等待TIME_WAIT状态结束就可以重启服务器了,即使IME_WAIT状态还是存在的,但是不影响重启服务器 (在绑定之前调用setsockopt来设置REUSEADDR)`...原创 2020-12-03 16:17:45 · 970 阅读 · 0 评论 -
获取本机ip
#include <stdio.h>#include <ifaddrs.h>#include <netinet/in.h>#include <string.h>#include <arpa/inet.h>int get_local_ip(char *ips){ struct ifaddrs *ifAddrStruct; void *tmpAddrPtr=NULL; char ip[INET_ADDRSTRLEN]; int原创 2020-12-01 11:36:00 · 121 阅读 · 0 评论 -
获取本机mac地址的c程序
下图是获取本机mac地址的demon小程序#include<stdio.h>#include<string.h>#include<net/if.h>#include <sys/ioctl.h>int get_localmac(const char *interface, unsigned char *mac){ if ((NULL == interface) || (NULL == mac)) { printf("param_error原创 2020-07-26 18:39:03 · 717 阅读 · 0 评论 -
udp广播发送端与接收端demon---超详细注释
udp广播收发经典demon,超详细注释1、发送端/*****************************************demon:广播发送端 author:乐乐****************************************/#include <sys/types.h> #include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h原创 2020-07-08 18:37:28 · 982 阅读 · 0 评论