Linux平台:一个简单的TCP6 server的示例代码(socket)
2015-02-28 10:34
597 查看
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
//#include <arpa/inet.h>
void error(const char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in6 serv_addr, cli_addr;
int n;
sockfd = socket(AF_INET6, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = 5020;
serv_addr.sin6_family = AF_INET6;
serv_addr.sin6_addr = in6addr_any;//INADDR_ANY;
serv_addr.sin6_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr,
&clilen);
if (newsockfd < 0)
error("ERROR on accept");
bzero(buffer,256);
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
printf("Here is the message: %s\n",buffer);
n = write(newsockfd,"I got your message",18);
if (n < 0) error("ERROR writing to socket");
close(newsockfd);
close(sockfd);
}
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
//#include <arpa/inet.h>
void error(const char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in6 serv_addr, cli_addr;
int n;
sockfd = socket(AF_INET6, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = 5020;
serv_addr.sin6_family = AF_INET6;
serv_addr.sin6_addr = in6addr_any;//INADDR_ANY;
serv_addr.sin6_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr,
&clilen);
if (newsockfd < 0)
error("ERROR on accept");
bzero(buffer,256);
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
printf("Here is the message: %s\n",buffer);
n = write(newsockfd,"I got your message",18);
if (n < 0) error("ERROR writing to socket");
close(newsockfd);
close(sockfd);
}
相关文章推荐
- linux socket编程Server简单示例
- Linux Socket 事件触发模型 epoll 示例 这里会写一个用C语言的TCP服务器的完全实现的简单程序
- Java 中ServerSocket与Socket 通信的简单示例
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载)
- 关于(在2410+linux平台上,关于led 的一个简单应用程序)的驱动程序
- 一个简单的Linux下Client/Server应答例子
- 一个最简单的IIS日志导入示例(含代码)
- linux平台下server端的一个小错误
- Linux C++ 一个线程池的简单实现(附代码)
- Linux字符设备驱动程序的一个简单示例(转)
- 一个win32平台的socket简单程序
- Linux总线驱动-01: 一个简单的示例
- 关于(在2410+linux平台上,关于led 的一个简单应用程序)的驱动程序
- 一个简单的Linux下Client/Server应答例子
- Asp.net 2.0 一个简单的联动DropDownList示例(示例代码下载) [zhuan :D]
- 在2410+linux平台上,关于led 的一个简单应用程序
- 异步Socket通信的一个简单示例
- 一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
- 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
- 一个简单的Linux下Client/Server应答例子