[問題] socket setsockopt
struct sockaddr_in client_addr;
bzero(&client_addr,sizeof(client_addr));
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = htons(INADDR_ANY);
client_addr.sin_port = htons(0);
int client_socket = socket(AF_INET,SOCK_STREAM,0);
if(client_socket < 0)
{
printf("Create Socket Failed!\n");
exit(1);
}
struct ifreq interface;
//skfd = socket(AF_INET, SOCK_DGRAM, 0);
strncpy(interface.ifr_ifrn.ifrn_name, "eth0", IFNAMSIZ);
if (setsockopt(client_socket, SOL_SOCKET, SO_BINDTODEVICE,
(char *)&interface, sizeof(interface)+1) < 0) {
perror("sendpacket: setting SO_BINDTODEVICE");
exit(1);
}
/* if ( setsockopt(client_socket,SOL_SOCKET,SO_BINDTODEVICE,"wlan0",4) ==
-1 )
{
printf("Set Interface Card Failed!\n");
exit(1);
}*/
/* if(bind(client_socket,(struct
sockaddr*)&client_addr,sizeof(client_addr)))
{
printf("Client Bind Port Failed!\n");
exit(1);
}*/
struct sockaddr_in server_addr;
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family = AF_INET;
if(inet_aton(argv[1],&server_addr.sin_addr) == 0)
{
printf("Server IP Address Error!\n");
exit(1);
}
server_addr.sin_port = htons(REQUEST_SERVER_PORT);
socklen_t server_addr_length = sizeof(server_addr);
printf("Here...!\n");
if(connect(client_socket,(struct sockaddr*)&server_addr,
server_addr_length) < 0)
{
printf("Can Not Connect To %s!\n",argv[1]);
exit(1);
}
eth0 Link encap:Ethernet HWaddr 74:d0:2b:07:d1:e8
inet addr:140.117.89.78 Bcast:140.117.89.255 Mask:255.255.255.0
inet6 addr: fe80::76d0:2bff:fe07:d1e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19560 errors:0 dropped:0 overruns:0 frame:0
TX packets:4755 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3398106 (3.3 MB) TX bytes:574250 (574.2 KB)
Interrupt:43 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:633 errors:0 dropped:0 overruns:0 frame:0
TX packets:633 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:83692 (83.6 KB) TX bytes:83692 (83.6 KB)
wlan0 Link encap:Ethernet HWaddr 6c:71:d9:5f:ea:5b
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::6e71:d9ff:fe5f:ea5b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2046 errors:0 dropped:0 overruns:0 frame:0
TX packets:304 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1276999 (1.2 MB) TX bytes:53934 (53.9 KB)
不知道為什麼我用setsockopt要指定wlan0的網卡傳送,
但是卻不行 在connect時,就會停下來
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.117.89.78
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1442993273.A.068.html
推
09/23 17:15, , 1F
09/23 17:15, 1F
推
09/23 17:17, , 2F
09/23 17:17, 2F
→
09/23 18:12, , 3F
09/23 18:12, 3F
→
09/23 18:30, , 4F
09/23 18:30, 4F
→
09/23 18:31, , 5F
09/23 18:31, 5F
→
09/23 18:31, , 6F
09/23 18:31, 6F
→
09/23 23:18, , 7F
09/23 23:18, 7F
推
09/24 15:42, , 8F
09/24 15:42, 8F
→
09/24 15:44, , 9F
09/24 15:44, 9F
→
09/24 18:24, , 10F
09/24 18:24, 10F
推
09/24 20:10, , 11F
09/24 20:10, 11F
→
09/24 20:14, , 12F
09/24 20:14, 12F
推
09/24 23:11, , 13F
09/24 23:11, 13F
→
09/24 23:45, , 14F
09/24 23:45, 14F
推
09/25 14:45, , 15F
09/25 14:45, 15F
→
09/25 14:45, , 16F
09/25 14:45, 16F
推
09/25 14:55, , 17F
09/25 14:55, 17F
→
09/25 21:34, , 18F
09/25 21:34, 18F