c语言 获取mac地址

#include #include #define NETCARD "eth0"char macAddr[128] = {0};memset(macAddr, 0, 128);rtval = get_mac_addr(macAddr);int get_mac_addr(char *macAddr){int tmpsockid;struct ifreq ifr;unsigned char *ptr;memset(&ifr, 0, sizeof(struct ifreq));tmpsockid = socket(AF_INET, SOCK_DGRAM, 0);if(tmpsockid < 0) {printf("get mac address failed \n");return -1;}strcpy(ifr.ifr_name, NETCARD);if(ioctl(tmpsockid, SIOCGIFHWADDR, &ifr) < 0) {printf("get mac address failed \n");return -1;}ptr = (unsigned char *)ifr.ifr_hwaddr.sa_data;sprintf(macAddr, "%02x%02x%02x%02x%02x%02x", ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5]);printf("get mac address is %s\n", macAddr);close(tmpsockid);return 0;}
服务器端: package com.softeem.socket.server; import java.io.FileNotFoundException; import java.io.IOException; public class FileServer { /** * @param args */ public static void main(String[] args) { // 读取本地文件 try { java.io.FileInputStream fis = new java.io.FileInputStream( new java.io.File("d:\\数据库.zip")); // 转换成网络输出流 java.net.ServerSocket ss = new java.net.ServerSocket(9000); java.net.Socket sk = ss.accept(); //DataOutputStream 处理数据 数据的输出流 java.io.OutputStream os = new java.io.DataOutputStream( sk.getOutputStream()); // 利用网络输出流将文件传到客户端 边读边发送 int len=0; byte[] buff = new byte[1024]; while((len=fis.read(buff))!=-1){ os.write(buff, 0, len); os.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 客户端: package com.softeem.socket.client; import java.io.FileNotFoundException; import java.io.IOException; import java.net.UnknownHostException; public class FileClient { /** * @param args */ public static void main(String[] args) { // 文件的输出流 try { java.io.FileOutputStream fos = new java.io.FileOutputStream( new java.io.File("e:\\database.zip ")); // 网络的输入流 java.net.Socket sk = new java.net.Socket("192.168.1.101",9000); java.io.InputStream is = new java.io.DataInputStream( sk.getInputStream()); // 接受网络输入流 写入文件 int len = 0; byte[] buff = new byte[1024]; while((len=is.read(buff))!=-1){ fos.write(buff, 0, len); fos.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 有源码和体会,写的很详细和完整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值