2011-05-17 10 views
17

मुझे kgdb-gdb रिमोट कनेक्शन के लिए सीरियल पोर्ट सॉकेट बनाने की आवश्यकता है।टाइप सॉकेट की विशेष फाइलें कैसे बनाएं?

जैसे mkfifo आपके सिस्टम पर एक फीफो बनाता है, हम सॉकेट फ़ाइलों को कैसे बना सकते हैं?

+1

सी https://stackoverflow.com/questions/20171747/how-to-create-unix-domain-socket-with-a- विशिष्ट- पैरामिशन | खोल https://serverfault.com/questions/358866/create-unix-named-socket-from-the-command-line इसके अलावा मैंने किसी भी सॉकेट मैन्युअल रूप से बनाए बिना केजीडीबी जीडीबी प्रबंधित किया: https://stackoverflow.com/a/44226360/895245 –

+0

नीचे दिए गए अंक को @rsaw अंक देने के उत्तर के रूप में चिह्नित करने पर विचार करें। –

उत्तर

14

@cidermonkey द्वारा स्वीकृत उत्तर में लिंक शानदार है यदि आप सॉकेट का उपयोग करने वाले ऐप को लिखने का प्रयास कर रहे हैं। , जीसीसी

#include <fcntl.h> 
#include <sys/un.h> 
#include <sys/socket.h> 
#include <sys/stat.h> 
#include <sys/types.h> 
#include <unistd.h> 

int main(int argc, char **argv) 
{ 
    // The following line expects the socket path to be first argument 
    char * mysocketpath = argv[1]; 
    // Alternatively, you could comment that and set it statically: 
    //char * mysocketpath = "/tmp/mysock"; 
    struct sockaddr_un namesock; 
    int fd; 
    namesock.sun_family = AF_UNIX; 
    strncpy(namesock.sun_path, (char *)mysocketpath, sizeof(namesock.sun_path)); 
    fd = socket(AF_UNIX, SOCK_DGRAM, 0); 
    bind(fd, (struct sockaddr *) &namesock, sizeof(struct sockaddr_un)); 
    close(fd); 
    return 0; 
} 

फिर स्थापित यह संकलन, और टा: यदि आप सचमुच सिर्फ एक बनाना चाहते हैं आप अजगर में कर सकते हैं:

~]# python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/somesocket')" 
~]# ll /tmp/somesocket 
srwxr-xr-x. 1 root root 0 Mar 3 19:30 /tmp/somesocket 

या with a tiny C program, जैसे, create-a-socket.c के लिए निम्न बचाने दा:

~]# gcc -o create-a-socket create-a-socket.c 
~]# ./create-a-socket mysock 
~]# ll mysock 
srwxr-xr-x. 1 root root 0 Mar 3 17:45 mysock 
+0

महान उत्तर @rsaw! बहुत ही निर्देशक के अलावा, यह भी बताता है कि क्यों पाइथन कभी-कभी पसंदीदा प्रोग्रामिंग भाषा है। –

+0

@rsaw ग्रेट पायथन जवाब। इसके लिए शुक्रिया। = :) –

संबंधित मुद्दे