1.文件名为 connect.h
#ifndef CONNECT_H
#define CONNECT_H
/******************
**功能:连接初始化
**输入:port 端口,listen_fd1 监听文件
**输出:返回监听文件
******************/
int connect_init(int port,int *listen_fd1); //初始化socket,建立连接
/******************
**功能:发送功能
**输入:com_fd 客户端文件,buf 发送信息,len 信息长度
**输出:返回1表示发送成功,0表示不成功
******************/
int connect_sendMessage(int com_fd,char *buf,int len); //发送消息到后台
/******************
**功能:接受信息功能
**输入:com_fd 客户端文件,buf 接受信息,len 信息长度
**输出:返回1表示发送成功,0表示不成功
******************/
int connect_receiveMessage(int com_fd,char *buf,int len); //前台接收消息
#endif
2。文件名为connect.c
#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<errno.h>
#include<unistd.h>
#include<sys/wait.h>
#include<netdb.h>
#include<pthread.h>
/******************
**功能:连接初始化
**输入:port 端口,listen_fd1 监听文件
**输出:返回监听文件
******************/
int connect_init(int port,int *listen_fd1){
int listen_fd;
int com_fd;
int ret;
int len;
struct sockaddr_in client_addr;
struct sockaddr_in server_addr;
pthread_t pthread_id;
listen_fd = socket(AF_INET, SOCK_STREAM, 0);
if(listen_fd == -1){
perror("listen_fd error");
return 1;
}
memset(&server_addr,0,sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = port;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
ret = bind(listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr));
if(ret == -1){
perror("connot bind server socket");
close(listen_fd);
return 1;
}
ret = listen(listen_fd, 1);
if(ret == -1){
perror("connot listen the client connect request");
close(listen_fd);
return 1;
}
*listen_fd1=listen_fd;
}
/******************
**功能:发送功能
**输入:com_fd 客户端文件,buf 发送信息,len 信息长度
**输出:返回1表示发送成功,0表示不成功
******************/
int connect_sendMessage(int com_fd,char *buf,int len){
if(len>0){
send(com_fd,buf,len,0);
return 1;
}
else return 0;
}
/******************
**功能:接受信息功能
**输入:com_fd 客户端文件,buf 接受信息,len 信息长度
**输出:返回1表示发送成功,0表示不成功
******************/
int connect_receiveMessage(int com_fd,char *buf,int len){
int size;
size=recv(com_fd,buf,len,0);
if(size>0){
buf[size]='\0';
return size;
}
else return 0;
}
使用上面的函数
#include <stdio.h>
#include "connect.h"
int main(int argc, char *argv[])
{
int port = 5000;
int listen_fd;
struct sockaddr_in client;
socklen_t client_len;
int size= sizeof(client_len);
char buf[1024];
//初始化
connect_init(port,&listen_fd);
while(1){
//建立连接
com_fd = accept(listen_fd,(struct sockaddr *)&client,&size);
printf("connect\n");
//接收客户端信息
connect_receiveMessage(com_fd,buf,1024);
//发送信息
connect_sendMessage(com_fd,"N",1);
//关闭与客户端连接
close(com_fd);
}
//关闭服务器socket文件描述符
close(listen_fd);
return 0;
}
分享到:
相关推荐
在IT领域,网络通信是不可或缺的一部分,而TCP...通过`File_client.java`和`File_server.java`这两个文件,我们可以学习到如何在Java中实现TCP服务器和客户端的交互,这对于理解网络编程和开发相关应用至关重要。
本篇文章将深入探讨Linux下的C语言SOCKET编程,包括客户端和服务器端的实现。 首先,我们要理解SOCKET的基本概念。在计算机网络中,SOCKET是一种进程间通信(IPC)机制,它允许通过网络连接的两台机器上的进程相互...
在本主题中,我们将深入探讨TCP(传输控制协议)连接的Socket编程,包括服务器端和客户端的实现代码。 TCP是一种面向连接的、可靠的传输层协议,它确保了数据在发送到目的地之前是完整且有序的。TCP连接的建立过程...
"基于TCP/IP的socket编程"是一个深入探讨如何使用socket接口进行网络通信的主题。Socket编程允许应用程序通过网络发送和接收数据,它是互联网上不同计算机之间交互的核心机制。 在给定的描述中,我们看到一个创新的...
Socket编程是计算机网络通信中的重要概念,特别是在服务器端开发中起着核心作用。MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序的开发,包括了对Socket编程的支持。本篇将...
《TCP服务器端程序详解》 在信息技术领域,网络通信是不可或缺的一部分,而TCP(Transmission Control Protocol)协议作为传输层的主要协议之一,为应用程序提供了一种可靠的数据传输方式。本篇文章将深入探讨“tcp...
通过阅读和分析这些代码,可以深入理解C语言SOCKET编程和FTP协议的应用。 总结来说,C语言SOCKET编程FTP项目是一个实践性的学习案例,它展示了如何使用C语言的SOCKET接口实现FTP客户端,涵盖了网络连接、身份验证、...
本教程将深入探讨Android Socket编程的基本概念、客户端与服务器端的实现以及相关源码解析。 一、Socket基本概念 Socket,也被称为套接字,是网络通信中的一个重要接口,它为两台设备提供双向通信的通道。在Android...
本文件“C语言socket编程.pdf”显然是一个关于如何使用C语言进行socket编程的教程或指南,旨在帮助开发者理解和掌握网络通信的核心概念和技术。Socket编程是C语言中实现客户端-服务器通信的关键工具,它提供了标准的...
首先,我们来看"servertcp",这是一个基础的TCP服务器端代码。在Python中,我们可以使用内置的`socket`模块来创建服务器。下面是一段基本的TCP服务器代码: ```python import socket # 创建socket对象 server_...
### 基于TCP的Socket编程在VC中的应用与实现 #### 一、知识点概览 在VC(Visual C++)环境下进行网络编程时,基于TCP的socket编程是实现客户端与服务器之间通信的重要方式之一。本文将从初始化、创建socket、绑定...
本篇将详细讲解C语言中的socket编程,以及如何构建一个与服务器保持长连接的客户端程序。 首先,我们需要了解什么是Socket。Socket是网络通信的一种接口,它允许两个网络应用程序通过TCP/IP协议进行数据交换。在...
文档中可能包含了如何用C语言编写一个简单的服务器和客户端程序的示例,这些示例通过逐步引导的方式,帮助读者理解并掌握Socket编程。 ### 数据包Sockets、阻塞以及select()多路同步I/O 在Socket编程中,理解...
本教程将深入讲解如何使用`SOCKET`进行服务器端和客户端的同步通信,主要涉及TCP协议。以下是对标题和描述中所包含知识点的详细解释: 1. **SOCKET网络编程**:`SOCKET`是操作系统提供的接口,它允许应用程序通过...
在提供的压缩包中,"linux下多线程网络编程TCP服务器端数据传输代码"应该包含了实现这些步骤的C语言源代码。在使用前,务必阅读readme.txt文件,了解代码的运行环境、依赖库和使用方法。 这个程序可能包含以下关键...
文件“TestSocket”可能包含了一个简单的Socket TCP编程示例,可能涵盖了服务器端和客户端的代码实现,读者可以通过阅读和运行这个示例来加深理解。在实际开发中,还可以结合错误处理、超时机制、性能优化等技术,让...
本项目通过实际操作加深了学生对于TCP/IP协议以及socket编程的理解。通过搭建Android客户端与服务器端的通信框架,并利用服务器作为中间件访问MySQL数据库,不仅锻炼了学生的编程实践能力,还帮助他们掌握了网络编程...
在这个项目中,"Socket文件传输"可能包含了客户端和服务器端的源代码文件,如client.c或client.py,server.c或server.py等。这些文件通常包含了上述的TCP文件传输逻辑,通过编译或运行可以实现文件的双向传输。 ...
TCP 编程服务器端和客户端步骤详解 TCP 编程服务器端一般步骤是: 1. 创建一个 socket,用函数 socket():在服务器端,首先需要创建一个 socket,以便与客户端进行通信。socket() 函数用于创建一个 socket,参数...
总的来说,TCP Socket编程涉及到网络通信的基础知识,包括套接字的创建、连接建立、数据传输以及异常处理。这个资源为初学者提供了一个简单的起点,帮助理解TCP文件传输的机制。在实际项目中,还需要考虑更多的因素...