C Language Socket programming

Source: Internet
Author: User

1. [Code][c/c++] Code
Service side:
//
Main.m
Server
//
Created by Mac on 13-4-15.
Copyright (c) 2013 Mac. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <sys/types.h>
#import <sys/socket.h>
#import <netinet/in.h>
#import <arpa/inet.h>

int Createserversocket (short port)
{
int socket_server=0;
Socket_server=socket (af_inet,sock_stream,0);
Populating IP with ports
/*
struct SOCKADDR_IN {
__uint8_t Sin_len;
sa_family_t sin_family;
in_port_t Sin_port;
struct IN_ADDR sin_addr;
Char Sin_zero[8];
};
*/
struct sockaddr_in saddr = {0};
Saddr.sin_len=sizeof (SADDR);
Saddr.sin_family=af_inet;
saddr.sin_port= htons (port); Native byte sequence to network byte order
Saddr.sin_addr.s_addr=inaddr_any;
Bind//(struct sockaddr *) &saddr Strong turn
if (Bind (Socket_server, (struct sockaddr *) &saddr, sizeof (SADDR))! = 0) {
return 0;
}
Listening
if (Listen (socket_server, 100)! = 0) {
return 0;
}
return socket_server;
}
Receives the connection and returns the Scoket of the client
int acceptclientsocket (int serversocket)
{
int clinetsocket=0;
struct sockaddr_in caddr = {0};
socklen_t len=sizeof (CADDR);
Clinetsocket = Accept (ServerSocket, (struct sockaddr *) &caddr, &len);
char * IPADDRESS=INET_NTOA (CADDR.SIN_ADDR);
printf ("Accept--->%s,%d", ipaddress,caddr.sin_port);
return clinetsocket;
}
void Message (int socket)
{
Char send_message[1024]= "hello\n";
Char recv_message[1024]={0};
Send (socket, send_message, strlen (send_message) +1, 0);
while (1) {
recv (socket, recv_message, sizeof (Recv_message), 0);
printf ("<-----%s", recv_message);
printf ("----->");
Fgets (send_message, sizeof (send_message), stdin);
Send (Socket,send_message,strlen (send_message) +1,0);
}
}

int main (int argc, const char * argv[])
{
Short port=9898;
if (argc>1) {
Port= (short) atoi (argv[1]);
}
int serversocket = Createserversocket (port);
if (ServerSocket = = 0) {
printf ("Cerate scoket error\n");
return 0;
}
printf ("Cerate scoket ok!\n");

while (true)
{
int Clinetscoket=acceptclientsocket (serversocket);
if (Clinetscoket = = 0)
{http://www.enterdesk.com/special/shouhui/
printf ("Client connect error\n");
return 0;
}hand-painted pictures
printf ("Client connect ok.....\n");
Message (Clinetscoket);
return 0;
}

Receive connection
Accept (< #int #>, < #struct sockaddr *restrict#>, < #socklen_t *restrict#>)
struct sockaddr sadd2={0};
socklen_t len=sizeof (struct sockaddr);
Accept (ServerSocket, &AMP;SADD2, &len);

return 0;
}



Client:
//
Main.m
Client
//
Created by Mac on 13-4-15.
Copyright (c) 2013 Mac. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <sys/types.h>
#import <sys/socket.h>
#import <netinet/in.h>
#import <arpa/inet.h>

int Createclinetsocket ()
{
int clinetsocket = 0;
Clinetsocket = socket (af_inet, sock_stream, 0);
return clinetsocket;
}
int connectiontoserver (int client_socket,const char * server_ip,unsigned short port)
{
struct sockaddr_in saddr={0};
Saddr.sin_len=sizeof (SADDR);
Saddr.sin_family=af_inet;
Inet_aton (server_ip, &saddr.sin_addr);
Saddr.sin_port=htons (port);
if (Connect (client_socket, (struct sockaddr *) &saddr, sizeof (SADDR)) ==0) {
return client_socket;
}
return 0;
}
Client
void Message (int socket)
{
Char send_message[1024]= "0";
Char recv_message[1024]={0};
while (1) {
recv (socket, recv_message, sizeof (Recv_message), 0);
printf ("<-----%s", recv_message);
printf ("----->");
Fgets (send_message, sizeof (send_message), stdin);
Send (Socket,send_message,strlen (send_message) +1,0);
}
}
int main (int argc, const char * argv[])
{
const char * server_ip= "127.0.0.1";
Short server_port=9898;
if (argc>1) {
SERVER_IP = argv[1];
}
if (argc>2) {
Server_port= (short) atoi (argv[2]);
}

int client_socket= createclinetsocket ();
if (Connectiontoserver (CLIENT_SOCKET,SERVER_IP, Server_port) ==0) {
printf ("Connect to Server error\n");
return 0;
}
printf ("Connect to Server ok\n");
Message (Client_socket);

return 0;
}

C Language Socket programming

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.