Bird
Raised Fist0
Computer Networksknowledge~10 mins

Socket programming basics in Computer Networks - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a socket using IPv4 and TCP protocols.

Computer Networks
sock = socket.socket(socket.[1], socket.SOCK_STREAM)
Drag options to blanks, or click blank then click option'
AAF_INET6
BAF_INET
CSOCK_DGRAM
DSOCK_RAW
Attempts:
3 left
💡 Hint
Common Mistakes
Using AF_INET6 instead of AF_INET for IPv4 sockets.
Confusing socket types with address families.
2fill in blank
medium

Complete the code to bind the socket to all interfaces on port 8080.

Computer Networks
sock.bind(([1], 8080))
Drag options to blanks, or click blank then click option'
A"0.0.0.0"
B"localhost"
C"127.0.0.1"
D"255.255.255.255"
Attempts:
3 left
💡 Hint
Common Mistakes
Binding to 'localhost' limits connections to local only.
Using broadcast address '255.255.255.255' is incorrect for binding.
3fill in blank
hard

Fix the error in the code to listen for incoming connections with a backlog of 5.

Computer Networks
sock.[1](5)
Drag options to blanks, or click blank then click option'
Aconnect
Bbind
Clisten
Daccept
Attempts:
3 left
💡 Hint
Common Mistakes
Using accept() before listen().
Using bind() or connect() incorrectly here.
4fill in blank
hard

Fill both blanks to accept a connection and receive data from the client.

Computer Networks
conn, addr = sock.[1]()
data = conn.[2](1024)
Drag options to blanks, or click blank then click option'
Aaccept
Brecv
Csend
Dconnect
Attempts:
3 left
💡 Hint
Common Mistakes
Using send() instead of recv() to receive data.
Using connect() on server side instead of accept().
5fill in blank
hard

Fill all three blanks to send a response and close the connection properly.

Computer Networks
conn.[1](b"HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello")
conn.[2](socket.SHUT_RDWR)
sock.[3]()
Drag options to blanks, or click blank then click option'
Asend
Bclose
Cshutdown
Drecv
Attempts:
3 left
💡 Hint
Common Mistakes
Calling close() before shutdown(), which may cause data loss.
Using recv() instead of send() to send data.

Practice

(1/5)
1. What is the primary purpose of a socket in computer networks?
easy
A. To enable communication between two programs over a network
B. To store files on a server
C. To encrypt data before sending
D. To manage user permissions on a device

Solution

  1. Step 1: Understand what a socket does

    A socket is an endpoint for sending or receiving data across a network connection.
  2. Step 2: Identify the main function

    Its main role is to allow two programs on different devices to communicate.
  3. Final Answer:

    To enable communication between two programs over a network -> Option A
  4. Quick Check:

    Socket = communication endpoint [OK]
Hint: Remember sockets connect programs for data exchange [OK]
Common Mistakes:
  • Confusing sockets with file storage
  • Thinking sockets encrypt data
  • Assuming sockets manage user permissions
2. Which of the following is the correct order of steps in basic socket programming?
easy
A. Bind, create socket, listen, accept, send/receive, close
B. Create socket, bind, listen, accept, send/receive, close
C. Create socket, listen, bind, accept, send/receive, close
D. Accept, create socket, bind, listen, send/receive, close

Solution

  1. Step 1: Recall the socket programming sequence

    The correct sequence starts by creating a socket, then binding it to an address and port.
  2. Step 2: Follow the connection steps

    After binding, the server listens for connections, accepts them, then sends/receives data, and finally closes the socket.
  3. Final Answer:

    Create socket, bind, listen, accept, send/receive, close -> Option B
  4. Quick Check:

    Socket steps = create, bind, listen, accept, send/receive, close [OK]
Hint: Remember: Create, Bind, Listen, Accept, Communicate, Close [OK]
Common Mistakes:
  • Binding before creating socket
  • Listening before binding
  • Accepting before listening
3. Consider this Python server code snippet:
import socket
s = socket.socket()
s.bind(('localhost', 12345))
s.listen(1)
conn, addr = s.accept()
data = conn.recv(1024)
print(data.decode())
conn.close()
s.close()

What will be printed if the client sends the message "Hello"?
medium
A. Error: decode() not found
B. b'Hello'
C. Hello
D. None

Solution

  1. Step 1: Understand data reception

    The server receives bytes data from the client using conn.recv(1024).
  2. Step 2: Decode bytes to string

    The data.decode() converts bytes to a readable string, so printing it shows "Hello".
  3. Final Answer:

    Hello -> Option C
  4. Quick Check:

    Bytes decoded to string = Hello [OK]
Hint: recv() returns bytes; decode() converts to string [OK]
Common Mistakes:
  • Expecting bytes output without decoding
  • Assuming decode() causes error
  • Thinking recv() returns None
4. Identify the error in this socket server code snippet:
import socket
s = socket.socket()
s.listen(1)
s.bind(('localhost', 12345))
conn, addr = s.accept()
medium
A. Calling listen() before bind()
B. Missing socket creation
C. accept() called without listen()
D. bind() called after accept()

Solution

  1. Step 1: Check the order of socket calls

    The socket must be bound to an address before it starts listening.
  2. Step 2: Identify the incorrect sequence

    Here, listen() is called before bind(), which is incorrect and will cause an error.
  3. Final Answer:

    Calling listen() before bind() -> Option A
  4. Quick Check:

    Bind before listen [OK]
Hint: Always bind socket before listen() [OK]
Common Mistakes:
  • Calling listen() before bind()
  • Confusing accept() and listen() order
  • Forgetting to create socket
5. You want to write a server that handles multiple clients one after another using sockets. Which approach correctly applies socket programming basics?
hard
A. Create socket, accept client without binding or listening, communicate, close socket
B. Bind socket, create socket, listen, accept client, communicate, close socket
C. Create socket, bind, accept client, listen, communicate, close socket
D. Create socket, bind, listen, accept client, communicate, close client socket, then accept next client

Solution

  1. Step 1: Understand sequential client handling

    The server must create a socket, bind it, and listen before accepting clients one by one.
  2. Step 2: Follow correct order for each client

    For each client, accept the connection, communicate, close the client socket, then accept the next client.
  3. Final Answer:

    Create socket, bind, listen, accept client, communicate, close client socket, then accept next client -> Option D
  4. Quick Check:

    Correct socket lifecycle for multiple clients = Create socket, bind, listen, accept client, communicate, close client socket, then accept next client [OK]
Hint: Bind and listen once; accept and close per client [OK]
Common Mistakes:
  • Accepting without binding or listening
  • Calling listen after accept
  • Binding before creating socket
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard