socket

Server side

define sockaddr_in
structure sockaddr_in serveraddr, clientaddr

new a socket
server_socket = socket (AF_INET, SOCK_STREAM, 0)

setup serveraddr
serveraddr.sin_family
serveraddr.sin_port
serveraddr.sin_addr.s_addr = htons(INADDR_ANY)

bind serveraddr to server_socket
bind(server_socket, (struct sockaddr *) &serveraddr, sizeof(serveraddr)

set up listen
listen(server_socket, LENGTH_OF_LISTEN_QUEUE)

server loop cycle, never exit

no need to setup in server loop
clientaddr.sin_family, clientaddr.sin_port, clientaddr.sin_addr.s_addr
client_socket is generate by accept

client_socket = accetp(server_socket, (struct sockaddr *) &clientaddr, sizeof(clientaddr))

sent some information to client
send(client_socket, buf, BUFFER_SIZE, 0)

close client_socket after send inforation to client
close(client_socket)


Client side

define sockaddr_in
struct sockaddr_in clientaddr, serveraddr

define buffer char array
char buf[BUFFER_SIZE]

new a socket
client_socket  =  socket(AF_INET, SOCK_STREAM, 0)

setup clientaddr
clientaddr.sin_family
clientaddr.sin_port
clientaddr.sin_addr.s_addr

setup serveraddr
serveraddr.sin_family
serveraddr.sin_port
serveraddr.sin_addr.s_addr

inet_aton(argv[1], &serveraddr.sin_addr)
serveraddr.sin_addr.s_addr = inet_aton("127.0.0.1")

bind clientaddr to client_socket
bind(client_socket, (struct sockaddr*)&clientaddr, sizeof(clientaddr))

connect client_socket to serveraddr
connect(client_socket, (struct sockaddr*)&serveraddr, sizeof(serveraddr))

receive information from server side
recv(client_socket, buf, BUFFER_SIZE, 0)

原文地址:https://www.cnblogs.com/greencolor/p/2743872.html