易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Linux TCP网络编程示例
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <strings.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
int
main(
int
argc,
char
*argv[])
{
int
sockfd;
char
buffer[1024];
struct
sockaddr_in server_addr;
int
portnumber, nbytes;
if
(argc != 3) {
fprintf(stderr,
"Usage:%s hostname portnumber a"
, argv[0]);
exit(1);
}
if
(inet_aton(argv[1], &server_addr.sin_addr) == 0) {
fprintf(stderr,
"the hostip is not right!"
);
exit(1);
}
if
((portnumber = atoi(argv[2])) < 0) {
fprintf(stderr,
"Usage:%s hostname portnumber a"
, argv[0]);
exit(1);
}
// 创建套接字
if
((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
fprintf(stderr,
"Socket Error:%s a"
, strerror(errno));
exit(1);
}
// 填充服务器的地址信息
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(portnumber);
// 向服务器发起连接
if
(connect(sockfd, (
struct
sockaddr *)&server_addr,
sizeof
(
struct
sockaddr)) == -1) {
fprintf(stderr,
"Connect Error:%s a"
, strerror(errno));
exit(1);
}
// 连接成功后,从服务器接收信息
if
((nbytes = read(sockfd, buffer, 1024)) == -1) {
fprintf(stderr,
"Read Error:%s "
, strerror(errno));
exit(1);
}
buffer[nbytes] =
" "
;
printf(
"I have received:%s "
, buffer);
close(sockfd);
exit(0);
}
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <strings.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
int
main(
int
argc,
char
*argv[])
{
int
sockfd, new_fd;
struct
sockaddr_in server_addr;
struct
sockaddr_in client_addr;
int
sin_size, portnumber;
char
hello[] =
"Hello! Are you fine? "
;
if
(argc != 2) {
fprintf(stderr,
"Usage:%s portnumbera "
, argv[0]);
exit(1);
}
if
((portnumber = atoi(argv[1])) < 0) {
fprintf(stderr,
"Usage:%s portnumbera "
, argv[0]);
exit(1);
}
// 创建套接字
if
((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
fprintf(stderr,
"Socket error:%s a"
, strerror(errno));
exit(1);
}
// 填充服务器的地址结构
bzero(&server_addr,
sizeof
(
struct
sockaddr_in));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(portnumber);
// 套接字绑定地址
if
(bind(sockfd, (
struct
sockaddr *)&server_addr,
sizeof
(
struct
sockaddr)) == -1) {
fprintf(stderr,
"Bind error:%s a"
, strerror(errno));
exit(1);
}
// 进入监听状态
if
(listen(sockfd, 5) == -1) {
fprintf(stderr,
"Listen error:%s a"
, strerror(errno));
exit(1);
}
while
(1) {
// 接收客户端的连接
sin_size =
sizeof
(
struct
sockaddr_in);
if
((new_fd = accept(sockfd, (
struct
sockaddr *)&client_addr, (socklen_t *)&sin_size)) == -1) {
fprintf(stderr,
"Accept error:%s a"
, strerror(errno));
exit(1);
}
fprintf(stderr,
"Server get connection from %s "
, inet_ntoa(client_addr.sin_addr));
if
(write(new_fd, hello, strlen(hello)) == -1) {
fprintf(stderr,
"Write error:%s "
, strerror(errno));
exit(1);
}
close(new_fd);
}
close(sockfd);
// exit(0);
return
0;
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图