客户端、服务器源码
来源:互联网 发布:c语言打印图形 编辑:程序博客网 时间:2024/04/29 21:34
mpthserv.c
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAX 10
#define SERVER_PORT 5555
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
char clntName[INET_ADDRSTRLEN];
int serverSocket;
struct sockaddr_in server_addr;
struct sockaddr_in clientAddr;
int addr_len=sizeof(clientAddr);
int client;
char buffer[1024];
char sendbuf[1024];
int iDataNum;
void *thread1()
{
iDataNum=recv(client,buffer,1024,0);
if(iDataNum<0){
printf("recv() failed\n");
continue;
}
printf("client:> %s\n",buffer);
}
}
void *thread2()
{
scanf("%s",sendbuf);
if(strcmp(sendbuf,"quit")==0)
break;
send(client,sendbuf,200,0);
}
void thread_create(void)
{
}
void thread_wait(void)
{
pthread_join(thread[0],NULL);
pthread_join(thread[1],NULL);
}
}
int main()
{
if((serverSocket=socket(AF_INET,SOCK_STREAM,0))<0){
printf("socket() failed\n");
exit(1);
}
bzero(&server_addr,sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
server_addr.sin_port=htons(SERVER_PORT);
if(bind(serverSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))<0){
printf("bind() failed\n");
exit(1);
}
if(listen(serverSocket,5)<0){
printf("listen() failed\n");
}
while(1){
client=accept(serverSocket,(struct sockaddr *)&clientAddr,(socklen_t *)&addr_len);
if(client<0){
printf("accept() failed\n");
continue;
}
//
pthread_mutex_init(&mut,NULL);
}
}
mpthcli.c
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAX 10
#define SERVER_PORT 5555
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
struct sockaddr_in serverAddr;
int clientSocket,iDataNum;
char sendbuf[200];
char recvbuf[200];
void *thread1()
{
scanf("%s",sendbuf);
if(strcmp(sendbuf,"quit")==0)
break;
send(clientSocket,sendbuf,200,0);
}
void *thread2()
{
iDataNum=recv(clientSocket,recvbuf,1024,0);
if(iDataNum<0){
printf("recv() failed\n");
continue;
}
printf("Server:>%s\n",recvbuf);
}
void thread_create(void)
{
}
void thread_wait(void)
{
}
int main()
{
if((clientSocket=socket(AF_INET,SOCK_STREAM,0))<0){
printf("socket() failed\n");
exit(1);
}
serverAddr.sin_family=AF_INET;
serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
serverAddr.sin_port=htons(5555);
if(connect(clientSocket,(struct sockaddr *)&serverAddr,sizeof(serverAddr))<0){
printf("connect() failed\n");
exit(1);
}
close(clientSocket);
}
- 客户端、服务器源码
- sslvpn 服务器客户端源码
- UDP聊天穿透(服务器+客户端)源码
- MySQL 服务器监听客户端连接源码
- Java聊天软件服务器+客户端源码---…
- Android上传文件,客户端+服务器源码
- 社交app应用开发 客户端+服务器源码
- MFC Socket简单服务器与客户端源码
- MFC Socket简单服务器与客户端源码
- Netty框架代码(源码)客户端与服务器
- ARPG即时同步服务器+客户端源码发放
- Post请求登录笔记(服务器和客户端示例源码)
- epoll ET模式服务器和客户端源码例子
- Android笔记 Android客户端从服务器获取源码乱码demo
- [c#源码分享]客户端程序传送图片到服务器
- 基于unix的xmlrpc 服务器和客户端源码
- 源码安装Memcached服务器及其2种PHP客户端
- epoll ET模式服务器和客户端源码例子
- SQL Server 聚集索引和非聚集索引的区别
- java [字符串]-[StringBuffer]-[正则表达式]
- 统计出现次数最多的数据
- VC+Socket 网络通讯示例
- ETL测试方法论(ETL测试分层与持续集成)
- 客户端、服务器源码
- C++/C宏定义中## 连接符与# 符的含义
- 十道海量数据处理面试题
- Imagine Cup 2013
- poj 2481 Cows
- 十年后2023年再读这篇文章,看看我将会怎么样?
- UVa 11096 - Nails
- 我知道的一点Exadata测试常用的方法(这里主要讨论针对DW的场景)
- 从头到尾彻底解析Hash 表算法