socket bind

declspec의 이미지

소켓에 인터페이스를 바인딩 할때

sd = socket(AF_INET, SOCK_STREAM, 0); // server socket
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr( argv[1] );
serv_addr.sin_port=htons( atoi( argv[0] ) );

if(bind(sd, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) == -1){
fprintf(stderr, "bind error.\n");
exit(-1);
}

이런 코드에서

bind 할때 일어나는 자세한 일에 대해서 알고싶어요
socket 의 종류에 따라 다르다고 알지만 위처럼 평범한 TCP 소켓을 만들고났을때
포트번호랑 IP 주소를 소켓에 바인딩 할텐데
실험삼아 해봤는데 인터페이스가 down 인 상태에서도 바인딩이 되더라고요;
아무런 IP 나 줘봤는데; 포트번호도 2222222222 이런걸 줘도
바인딩이 되고;; 어찌된 일인지 bind 할때의 자세한 과정을
알고싶습니다~

그리고 인터페이스가 여러개인 경우에 특정 인터페이스에 소켓을 바인딩 하고 싶으면
해당 인터페이스의 IP 주소를 넘겨주면 되는게 맞나요?

그럼 127.0.0.1 과 바인딩을 했는데
인터페이스가 여러개 있다면 모드 인터페이스에서 오는 패킷을 다받아들이나요?

그리고 우분투 9.04에서...
네트워크 설정이 안되어있으면(네트워크 표시 그림부분에 X 되있으면)
파이어폭스가 무조건 동작을 안하는걸까요?

콘솔상에서 직접
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
route add default gw 192.168.1.1
이렇게 해서 세팅해 준것과(게이트웨이 IP 가 192.168.1.1일때)

네트워크 설정하는부분을(GUI상으로) 마우스로 클릭해서
인터페이스 선택해서 네트워크가 설정되는거랑 다른가요?
이 두가지가 무슨 차이가 있나요??

비록 콘솔상에서 게이트웨이랑 서브넷마스크랑 IP 설정해놔도
GUI 인터페이스상에는 네트워크 연결 X 표시 되는 상태에서
파이어폭스가 아예 안되는거 같네요 ㅠㅠ

익명 사용자의 이미지

1. 바인딩은 인터페이스 업/다운과는 상관이 없습니다.
2. 포트를 저렇게까지 줘본적은 없어서.... ;;; 제 기억엔 port 를 체킹하는 루틴을 제가 직접 넣어줬던 것으로 기억합니다.
3. 해당 인터페이스의 IP 를 던져주면 됩니다.
4. loopback(127.0.0.1) 은 인터페이스가 1개입니다.
5. 파이어폭스는 잘..... GUI 는 사용을 안해서 ㄷㄷ;;;

실제로 GUI 에서 하나 CLI 에서 하나 차이는 없는 것으로 알고 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.