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;
}
分享到:
相关推荐
基于TCP的Socket编程服务器和客户端代码
资源包含客户端程序tcpclient.c,服务器端程序tcpserver.c,Makefile文件以及一个自动化配置安装脚本 setup.sh,具体使用方法如下: 1 即make为运行make命令编译 client 和server, 2. 即包括1中内容和运行服务器端,...
SOCKET TCP 文件传输 客户端 服务器端 client svever 实现简易文件传输功能
C#语言,TCP通信服务器端程序,Socket编程
socket编程源代码TCPUDP socket编程源代码-包含客户端服务器端,TCP和UDP协议.rar
用C++写的TCP协议的socket编程代码,编译后可实现服务器端和客户机端的正常通信。
利用socket套接字进行服务器端和客户端之间的信息传递,实现信息的同步发送,便于初学者和深入开发的研究学习...
socket编程,客户端与服务器端,计算机网络
MFC socket 基于tcp 编写客户端的程序和服务器端的程序。服务器端和客户端能惊醒一对一的通信
实现了基于socket编程的TCP和UDP协议的客户端和服务器端的简易聊天程序。
工具包括服务器端和客户端; 具备用户注册、登录、找回密码功能(基于TCP协议); 两个用户如果同时在线,采用点到点通信方式进行聊天,信息不需要通过服务器中转,服务器也不保存(基于TCP协议); 支持离线消息...
一般的tcp网络编程分为客户端和服务器端,用Socket对象进行客户端与服务器端的数据交流,用IO流技术充当桥梁。本案例详细的阐述了这一过程。
调研http协议、TCP协议、UDP协议及socket编程相关知识;根据课程设计要求,选择合适的操作系统、开发环境及测试环境 必需有界面窗口,客户端可以实现网址的录入,协议的选择(TCP或返回信息的显示。服务器端要有...
2. 熟悉socket客户端与服务器端通信的结构和工作原理; 3. 掌握TCP传递消息的机制; 4. 开拓创新意识,培养独立动手操作的能力。 二、实验内容 本实验通过一个简单的网络应用来实现客户端与服务器端的通信.客户端...
VC6.0实现Server端Socket编程 可通过TCP协议与UDP协议传输数据并实现多线程 在命令行输入参数:端口号
TCP/IP协议socket编程。学习资料、、分客户端和服务器端
适合java初学者,可以帮助你们了解简单的图形化界面,和网络编程
一个Socket实例代表了TCP连接的一个客户端,而一个ServerSocket实例代表了TCP连接的一个服务器端,一般在TCP Socket编程中,客户端有多个,而服务器端只有一个,客户端TCP向服务器端TCP发送连接请求,服务器端的...
用JAVA编写了简单的客户端服务器端程序 可以在简单dos环境下模拟TCP,UDP的建立以及交互过程
基于TCP/IP的通信基本上都是利用SOCKET套接字进行数据通讯,程序分为服务器端和用户端两部分 本实验是本人做的计算机网络课程设计,有mfc的CSocket编的..给大家分享下 支持多人聊天,可以用,先运行服务器端,点击监听,...