#include "Form1.h"
#include "iostream"
#include "string"
#include "process.h"
#include "winsock2.h"
#include "windows.h"
#include "chatstr.h"
#include "winuser.h"
const int maxlen=2048;
bool flag=false;
SOCKET serv;
const int port=1257;
bool servok=true;
char buff[1024]="\0";
sockaddr_in soptions;
HANDLE hread;
unsigned readID;
using namespace aaaa;
using namespace std;
void stringtochar(char text[],System::String^ str){for(int i=0;i<str->Length;i++) text[i]=str[i];}
void fsend(SOCKET sr,char *str,int len,int flag){send(sr,str,len,flag);}
void fconnect(SOCKET serv,sockaddr_in soptions){connect(serv,(sockaddr *)&soptions,sizeof(soptions));}// это 2 функции чтоб ошибок невыдавало при вызове их в функциях формы
unsigned __stdcall read( void* pArguments )
{
Form1::mess->Text="aljshdgfjhasdf"; //МНЕ НУЖНО ИМЕНЯТЬ ТЕКТ ЗДЕСЬ
/*char strread[maxlen];
int start=0,end=0;
while(strread[0]!='\7'){
recv(serv,&strread[0],maxlen,0);
if(strread[0]!='\7'){
chatstr::write(strread,start,end);
for(int i=start;i<=end;i++)
{
}
//mess->Text+='\n';
}
}
flag=true;
closesocket(serv);
Form1::dissconect->Enabled=false;
Form1::connect->Enabled=true;
Form1::send->Enabled=false;
Form1::ipadres->Enabled=true;
*/
_endthreadex(0);
return 0;
}
inline System::Void Form1::dissconect_Click(System::Object^ sender, System::EventArgs^ e)
{
Form1::dissconect->Enabled=false;
Form1::connect->Enabled=true;
Form1::send->Enabled=false;
Form1::ipadres->Enabled=true;
flag=true;
fsend(serv,"\7",1,0); //оправляем серву что мы отключаемся))
CloseHandle(hread); // внешнее закритие потока
closesocket(serv);//закрываем сокет
}
inline System::Void Form1::connect_Click(System::Object^ sender, System::EventArgs^ e)
{
char sendip[maxlen]="\0";
stringtochar(sendip,Form1::ipadres->Text);
soptions.sin_family=AF_INET;
soptions.sin_port=htons(port);
soptions.sin_addr.S_un.S_addr=inet_addr(sendip);
serv=socket(AF_INET,SOCK_STREAM,0);
fconnect(serv,soptions); //конект к серву
hread = (HANDLE)_beginthreadex( NULL, 0, &read, 0, 0, &readID);//запуск потока
Form1::dissconect->Enabled=true;
Form1::connect->Enabled=false;
Form1::send->Enabled=true;
Form1::ipadres->Enabled=false;
}
inline System::Void Form1::send_Click(System::Object^ sender, System::EventArgs^ e) {
char strsend[maxlen]="\0";
char temp[maxlen]="\0";
stringtochar(temp,Form1::sendtext->Text);
Form1::sendtext->Text="\0";
chatstr::chat(temp,strsend);
fsend(serv,&strsend[0],strlen(strsend),0); //отправка месаги
}
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
WSAStartup(0x202,(WSADATA*)&buff[0]);
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew Form1);
WSACleanup();
return 0;
}