The send, sendto, sendmsg methods helps in sending a message from a socket.
ssize_t send (int s, const void *msg, size_t len, int flags); ssize_t sendto (int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); ssize_t sendmsg (int s, const struct msghdr *msg, int flags);
The send function, and sendto and sendmsg system calls are used to transmit a message to another socket. The send function may be used only when the socket is in a connected state, while sendto and sendmsg may be used at any time.
Following code snippets shows the usage of send, sendto, sendmsg functions:
#include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> void Recv() { struct sockaddr_in serv_addr; int sock_fd; char line[15] = "Hello world!"; int size = 13; serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); serv_addr.sin_port = htons(5000); sock_fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); connect(sock_fd,(struct sockaddr*)&serv_addr,sizeof(serv_addr)); send(sock_fd, line, size, 0); close(sock_fd); }
#include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> void Sendto() { sockaddr_in receiver_addr; int sock_fd; char line[15] = "Hello World!"; sock_fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); receiver_addr.sin_family = AF_INET; receiver_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); receiver_addr.sin_port = htons(5000); sendto(sock_fd, line, 13, 0,(struct sockaddr*)&receiver_addr,sizeof(receiver_addr)); close(sock_fd); }
#include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> void sendmsg() { struct sockaddr_in receiver_addr; int sock_fd; char line[15] = "Hello World!"; struct msghdr msg; struct iovec iov; sock_fd = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); receiver_addr.sin_family = AF_INET; receiver_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); receiver_addr.sin_port = htons(5000); msg.msg_name = &receiver_addr; msg.msg_namelen = sizeof(receiver_addr); msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_iov->iov_base = line; msg.msg_iov->iov_len = 13; msg.msg_control = 0; msg.msg_controllen = 0; msg.msg_flags = 0; sendmsg(sock_fd,&msg,0); close(sock_fd); }
| Thread | Thread Starter | Forum | Replies | Last Post |
|---|---|---|---|---|
| How to send sms through my j2me application | sandude7 | Mobile Java General | 9 | 2008-05-28 05:37 |
| Three phase transaction | arachidyl | Mobile Java Networking & Messaging & Security | 1 | 2007-02-08 17:40 |
| Communication - TCP UDP | dodil | Symbian Networking & Messaging | 10 | 2008-10-10 23:51 |
| Sockets on 6310i | morash | Mobile Java Networking & Messaging & Security | 4 | 2003-08-06 00:11 |
| Help with socket._socketmethods | alb3530 | Python | 2 | 2006-04-05 13:53 |